如何在PHP右下角的图像上添加水印?

时间:2018-12-23 00:11:42

标签: php image watermark

我正在尝试在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。我从过去的两个小时开始尝试,但无法成功将其正确放置。

有人有想法吗?怎么实现呢?真的非常有帮助。

1 个答案:

答案 0 :(得分:1)

您将水印图像放置在错误的位置。它需要相对于源图像的宽度和高度以及水印图像的尺寸。这可以解决您的问题:

  imagecopy($img, $watermark, $img_w - $wtrmrk_w, $img_h - $wtrmrk_h, 0, 0, $wtrmrk_w, $wtrmrk_h);