我正在尝试在PHP中为图像添加水印。我正在使用下面的代码,效果很好。但是我在以下方面面临挑战。
<?php
function watermark_image($target, $wtrmrk_file, $newcopy) {
$watermark = imagecreatefrompng($wtrmrk_file);
imagealphablending($watermark, false);
imagesavealpha($watermark, true);
$img = imagecreatefromjpeg($target);
$img_w = imagesx($img);
$img_h = imagesy($img);
$wtrmrk_w = imagesx($watermark);
$wtrmrk_h = imagesy($watermark);
imagecopy($img, $watermark, 500, 200, 0, 0, 100, 100);
imagejpeg($img, $newcopy, 100);
imagedestroy($img);
imagedestroy($watermark);
}
watermark_image('1.jpg','assets/images/watermark.png', 'new_image_name.jpg');
exit();
?>
我正在尝试实现一个代码,在其中可以对右下角的任何图像应用水印。固定的高度和宽度为150x150。我从过去的两个小时开始尝试,但无法成功将其正确放置。
有人有想法吗?怎么实现呢?真的非常有帮助。
答案 0 :(得分:1)
您将水印图像放置在错误的位置。它需要相对于源图像的宽度和高度以及水印图像的尺寸。这可以解决您的问题:
imagecopy($img, $watermark, $img_w - $wtrmrk_w, $img_h - $wtrmrk_h, 0, 0, $wtrmrk_w, $wtrmrk_h);