我正在尝试使用以下PHP代码合并两个图像:
$image1=imagecreatefrompng($url1);
$image2=imagecreatefrompng($url2);
$final = imagecreatetruecolor($w, $h);
$backgroundColor = imagecolorallocate($final, 255, 255, 255);
imagefill($final, 0, 0, $backgroundColor);
imagecopy($final, $image1, 0,0,0,0,$w,$h);
imagecopy($final, $image2, 0,0,0,0,$w,$h);
合并后,我在生成的图像上得到一个粉红色的阴影。请帮忙。我该如何解决?
原始图片:
产生的合并图像:
答案 0 :(得分:4)
您的目标图片是GIF,仅限于256色调色板。尝试以JPG或PNG导出,您可能会获得更好的色彩保真度。
答案 1 :(得分:2)
我已使用您的图片链接尝试了您的代码 并且它运作良好并产生适当的png 供您参考
$url1 = 'http://i.stack.imgur.com/kDYTM.png';
$url2 ='http://i.stack.imgur.com/MKTcb.png';
$image1=imagecreatefrompng($url1);
$image2=imagecreatefrompng($url2);
$final = imagecreatetruecolor(275, 275);
$backgroundColor = imagecolorallocate($final, 255, 255, 255);
imagefill($final, 0, 0, $backgroundColor);
imagecopy($final, $image1, 0,0,0,0,275,275);
imagecopy($final, $image2, 0,0,0,0,275,275);
header('Content-type:image/png');
imagepng($final);
对于gif图像,您可以用
替换最后两行header('Content-type:image/gif');
imagegif($final);