如何使用PHP的imagecopy()或imagecopymerge()函数合并两张图片?

3
请使用php图像处理函数imagecopy和imagecopymerge帮助合并三个jpg图像。
图像1:b.jpg b.jpg 图像2:l.jpg l.jpg 图像3:r.jpg r.jpg 输出的合并后的图像应如下所示: enter image description here 我尝试过一些PHP函数imagecopy()或imagecopymerge()的示例代码,但它们不能用于我的图像。
1个回答

4

您能提供更多关于“不工作”的信息吗?

我建议您查看:imagecopyresampled

对于代码,您需要将图像作为图像资源加载,这样您就可以使用类似以下的代码:

$im1 = imagecreatefrompng($path.'image1.png');
$im2 = imagecreatefrompng($path.'image2.png');

imagecopyresampled($im1,$im2,250,150,0,0,100,150,100,150);
unset($im2);
$im3 = imagecreatefrompng($path.'image3.png');

imagecopyresampled($im1,$im3,550,150,0,0,100,150,100,150);
unset($im3);

现在$im1有了三张图片。

一定要取消图像资源,因为内存很快就会耗尽。

编辑:我使用了imagecopyresampled,因为最后一张图片的图像2-3似乎更小,我不知道它的资源消耗程度,我猜imagecopymerge也可以工作。


我尝试了这段代码:<?php $im1 = imagecreatefrompng('image1.png'); $im2 = imagecreatefrompng('image2.png'); imagecopyresampled($im1,$im2,250,150,0,0,100,150,100,150); unset($im2); $im3 = imagecreatefrompng('image3.png'); imagecopyresampled($im1,$im3,550,150,0,0,100,150,100,150); unset($im3); ?> 但输出为空白页。 - Sreeraj
是的,图像已经创建了,但是您没有在页面上显示它。尝试添加以下内容: header('Content-Type: image/png'); imagepng($im1); - Lamonde
如果您想输出一个文件,只需使用 imagepng('images/name.png'); 而无需使用 header 部分。 - Lamonde

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接