PHP – 使用imagecopy时颜色不正确

我有几个生成的png图像:

$img = imagecreatefrompng($full_path_to_file);
imagealphablending($img , true); // setting alpha blending on
imagesavealpha($img , true); // save alphablending setting

图像很好,颜色正确,背景透明.

我需要将这些图像合二为一.为此我做了以下事情:

>创建具有正确尺寸的空白图像

$full_image = imagecreate($full_width,$full_height);
>将png图像逐个复制到空白图像上

imagecopy($full_image,$src,$dest_x,$dest_y,0,0,$src_width,$src_height)

图像组合好了.背景是透明的,但颜色不正确.

我怎样才能确保获得正确的颜色?

更新:按照建议,修复是使用imagecreatetruecolor另外,我需要将第二个参数设置为imagealphablending为false.因此,在创建png图像和创建full_image时,我会调用

imagealphablending($img , false); // updated to FALSE
imagesavealpha($img , true); 

imagesavealpha says的文档:

You have to unset alphablending (imagealphablending($im, false)), to
use it.

最佳答案 尝试使用:
imagecreatetruecolor而不是imagecreate.

点赞