我有几个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的文档中写道:
您需要取消图像混合(imagealphablending($im, false))才能使用它。