我试图合并两个png图像,方法是在图像后面放一个较小的png,中间有一个“洞”,透明度很高。
此示例中的“Front”图像为 $ src 示例
中的“返回”图片为 $ dest
到目前为止,我已经使用以下代码反向工作(通过将$ dest图像/较小的图像放在前面):
imagecopymerge($src, $dest, 300, 150, 0, 0, 150, 150, 100);
然而,我不知道如何使用较小的图像“Behind”更大的图像,以便它完美地适合在洞中。
我是否需要将图像($ dest)重新创建为更大的图像(500 x 500),以便将$ src图像“粘贴”在0偏移的顶部?这个东西很混乱:S
答案 0 :(得分:1)
想出来。
首先,我将较小的图像合并到下方与较大图像匹配的空白图像上。
然后,我将图像与孔合并到上面创建的新图像上。见如下:
// Get size of larger image
$sz = getimagesize("larger.jpg");
// Create resources
$backing = imagecreatetruecolor($sz[0],$sz[1]);
$img1 = imagecreatefrompng("larger.jpg");
$img2 = imagecreatefrompng("smaller.jpg");
// Merge backing
imagecopymerge($backing, $img2, 300, 150, 0, 0, 150, 150, 100);
// Merge main
imagecopymerge($backing,$img1, 0, 0, 0, 0, $sz[0], $sz[1], 100);
// Save new image
imagepng($backing,$save);
// Destroy resources
imagedestroy($backing);
imagedestroy($img1);
imagedestroy($img2);
希望这有助于某人!