在jpg上合并png并使用php保持透明度

时间:2013-02-23 00:43:06

标签: php gd

我有一个PNG,我正在尝试将其合并到JPG之上。使用以下代码

$dest = imagecreatefromjpeg("example.jpg");
$src = imagecreatefrompng("example.png");

imagealphablending($dest, false);
imagesavealpha($dest, true);

imagealphablending($src, true);

imagecopymerge($dest, $src, $src2x, $src2y, 0, 0, $src2w, $src2h, 100);

header('Content-Type: image/png');
imagepng($dest, "user/".$imei."/".$picCount."_m");

imagedestroy($dest);
imagedestroy($src);

以下结果

enter image description here

我还尝试了suggestion from a similar question,据说使用'imagecopyresampled'而不是'imagecopymerge',但是当我这样做时,圣诞老人的帽子根本没有出现。

我需要更改什么才能让圣诞老人的帽子在合并时保持透明度?

1 个答案:

答案 0 :(得分:10)

使用'imagecopyresampled'都需要解决方案。还可以从发布的源代码中删除第4行和第5行。

imagealphablending($dest, false);
imagesavealpha($dest, true);

这是完整的工作版本

$dest = imagecreatefromjpeg("example.jpg");
$src = imagecreatefrompng("example.png");

imagecopyresampled($dest, $src, $src2x, $src2y, 0, 0, $src2w, $src2h, $src2w, $src2h); 

header('Content-Type: image/png');
imagejpeg($dest, "user/".$imei."/".$picCount."_m.jpeg");

imagedestroy($dest);
imagedestroy($src);

enter image description here