当使用其他帖子中的示例尝试将其中包含透明部分的一个PNG与另一个非透明PNG合并时,前景PNG的透明度将丢失,默认为白色。
到目前为止的代码:
$width = 349;
$height = 250;
$base_image = imagecreatefrompng($_GET['bg']);
$top_image = imagecreatefrompng($_GET['fg']);
$merged_image = "merged.png";
imagesavealpha($top_image, true);
imagealphablending($top_image, true);
imagecopy($base_image, $top_image, 0, 0, 0, 0, $width, $height);
imagepng($base_image, $merged_image);
有人可以提出我可能出错的地方吗?
像这样出来 应该看起来像这样
答案 0 :(得分:0)
从Can PNG image transparency be preserved when using PHP's GDlib imagecopyresampled?
复制代码应该是这样的:
imagesavealpha($base_image, true);
imagealphablending($base_image, false);
答案 1 :(得分:0)
$image = imagecreatefrompng($_GET['bg']);
$frame = imagecreatefrompng($_GET['fg']);
imagealphablending($frame,true);
imagecopymerge($image, $frame, 0, 0, 0, 0, 0, 100, 100);
# Save the image to a file
imagepng($image, 'file-xyz.png');