使用 PHP GD 合并两个图像

Posted

技术标签:

【中文标题】使用 PHP GD 合并两个图像【英文标题】:Combine two images using PHP GD 【发布时间】:2013-01-25 12:08:25 【问题描述】:

我正在尝试创建一个图像,其中包含我的图像 A(上传的图像)和图像 B(我的水印图像)。我的问题是我没有得到正确的方法来从底部扩展图像的大小,这将使用图像 A 和 B 创建。

我的代码是 -

$img_width=imagesx($img);
$img_height=imagesy($img);
$watermark=imagecreatefrompng($watermark);
$watermark_width=imagesx($watermark);
$watermark_height=imagesy($watermark);

$image=imagecreatetruecolor($img_width, $img_height+35);
imagealphablending($image, false);
$dest_x=$img_width-$watermark_width;
$dest_y=$img_height-$watermark_height+20;

imagecopy($img, $watermark, $dest_x, $dest_y, 0, 0,$watermark_width, $watermark_height);
imagesavealpha($img, true);
imagejpeg($img, $config['pdir']."/t/l-".$thepp, 90);

我用这段代码得到的是 -

Results http://www.9gag.in/pdata/t/l-76.jpg

您可以看到水印图像没有完全与我要创建的图像合并。我想要目标图像中的扩展区域,水印将正确安装。

【问题讨论】:

【参考方案1】:

当你写作时:

$dest_y=$img_height-$watermark_height+20;

我猜你真的想要:

$dest_y=$img_height-$watermark_height-20;

图像顶部的 Y = 0,因此越往底部走,您的身高就越高。

【讨论】:

以上是关于使用 PHP GD 合并两个图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP GD 合并两个图像 (.JPG)

使用 gd 将两个 images.png 合并到 output.png

如何在php GD中应用旋转功能后去除黑色背景?

用gd制作混合图像

PHP使用GD2库画图,图像无法输出解决方法

如何将 2 个图像与 PHP(GD-GD2 库)混合,如乘法、颜色燃烧、颜色道奇等