我有几个生成的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);
你必须取消设置alphablending(imagealphablending($ im,false)) 用它。
答案 0 :(得分:2)
尝试使用:imagecreatetruecolor代替imagecreate。
答案 1 :(得分:0)
只需要在imagecopy()方法之后添加以下代码
$ white = imagecolorallocate($ destination_image,255,255,255); imagefill($ destination_image,0,0,$白色);