【问题标题】:Merge a png ontop of a jpg and retain transparency with php在 jpg 上合并 png 并使用 php 保持透明度
【发布时间】:2013-02-23 00:43:05
【问题描述】:

我有一个 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);

结果如下

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

我需要进行哪些更改才能使圣诞帽在合并时保持透明?

【问题讨论】:

    标签: php gd


    【解决方案1】:

    解决方案都需要使用“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);
    

    【讨论】:

    • 感谢您发布您的解决方案。省了我很多麻烦。 :)
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    相关资源
    最近更新 更多