0

当使用其他帖子中的示例尝试将一个具有透明部分的 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);

谁能建议我哪里出错了?

这样出来 像这样出来 应该看起来像这样 应该是这样的

4

2 回答 2

0

使用PHP的GDlib imagecopyresampled时可以保留PNG图像透明度吗?

代码应该是这样的:

imagesavealpha($base_image, true);
imagealphablending($base_image, false);
于 2012-06-28T13:04:48.467 回答
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');
于 2012-06-28T13:31:08.630 回答