使用php将“水印”添加到图像中 [已关闭]
我有一个网站,用户可以上传图片...
上传后,我需要将徽标(水印)添加到图像中。
我该怎么做?
重要的是,水印位于可见的角落,例如,我见过一些网站,它们会动态生成水印,并将水印放在主图像的背景“相同颜色”的任何位置,因此如果你知道我的意思,水印就会突出。
有人有关于这个的好教程或文章吗?或者知道php中的任何函数,我需要找到水印的位置?
我有一个网站,用户可以上传图片...
上传后,我需要将徽标(水印)添加到图像中。
我该怎么做?
重要的是,水印位于可见的角落,例如,我见过一些网站,它们会动态生成水印,并将水印放在主图像的背景“相同颜色”的任何位置,因此如果你知道我的意思,水印就会突出。
有人有关于这个的好教程或文章吗?或者知道php中的任何函数,我需要找到水印的位置?
PHP手册中的一个很好的例子:
// Load the stamp and the photo to apply the watermark to
$stamp = imagecreatefrompng('stamp.png');
$im = imagecreatefromjpeg('photo.jpeg');
// Set the margins for the stamp and get the height/width of the stamp image
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);
// Copy the stamp image onto our photo using the margin offsets and the photo
// width to calculate positioning of the stamp.
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));
// Output and free memory
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
使用此功能
,水印图像的类型必须是“png”
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);
$dst_x = ($img_w / 2) - ($wtrmrk_w / 2); // For centering the watermark on any image
$dst_y = ($img_h / 2) - ($wtrmrk_h / 2); // For centering the watermark on any image
imagecopy($img, $watermark, $dst_x, $dst_y, 0, 0, $wtrmrk_w, $wtrmrk_h);
imagejpeg($img, $newcopy, 100);
imagedestroy($img);
imagedestroy($watermark);
}
watermark_image('image_name.jpg','watermark.png', 'new_image_name.jpg');