Merge a png ontop of a jpg and retain transparency with php

拈花ヽ惹草 提交于 2019-12-20 14:42:37

问题


I have a PNG and I'm trying to merge it on top of a JPG. With the following code

$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);

Results in the following

I also tried a suggestion from a similar question which said to use 'imagecopyresampled' isntead of 'imagecopymerge' but when I did that the santa hat didn't show up at all.

What do I need to change to make the santa hat keep it's transparency when merged?


回答1:


Solution required both using 'imagecopyresampled'. As well a removing lines 4 and 5 from the posted source code.

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

Here is the complete working version

$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);



来源:https://stackoverflow.com/questions/15035632/merge-a-png-ontop-of-a-jpg-and-retain-transparency-with-php

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!