PHP 如何给图片右下角加水印?
How to add watermark to an image at the bottom right in PHP?
我正在尝试为 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。我在过去 2 小时内一直在尝试,但没有成功将其准确放置。
有人有想法吗?如何实现?这真的很有帮助。
您将水印图像放置在错误的位置。它需要相对于源图像的宽度和高度,以及水印图像的尺寸。这解决了您的问题:
imagecopy($img, $watermark, $img_w - $wtrmrk_w, $img_h - $wtrmrk_h, 0, 0, $wtrmrk_w, $wtrmrk_h);
我正在尝试为 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。我在过去 2 小时内一直在尝试,但没有成功将其准确放置。
有人有想法吗?如何实现?这真的很有帮助。
您将水印图像放置在错误的位置。它需要相对于源图像的宽度和高度,以及水印图像的尺寸。这解决了您的问题:
imagecopy($img, $watermark, $img_w - $wtrmrk_w, $img_h - $wtrmrk_h, 0, 0, $wtrmrk_w, $wtrmrk_h);