替换图像颜色并保持100%的alpha背景

时间:2011-04-12 09:35:47

标签: php gd

我有一个透明背景的png。前景是单色。我希望在保留100%alpha背景的同时更改此单色。

下面的代码不起作用,当我有一个gif时它起作用了。但是,当我将gif更改为png然后添加alpha内容时,颜色变化就会消失。

如果我添加imagetruecolortopalette($im, false, 255);,颜色会发生变化但alpha会丢失。

有人能告诉我出错的地方吗

$imgname = "block.png";
$im = imagecreatefrompng($imgname);
imagealphablending($im, false); 

$index = imagecolorclosest ($im, 153,153,153); // get Grey COlor
imagecolorset($im,$index,0,0,0); // SET NEW COLOR

imageAlphaBlending($im, true);
imageSaveAlpha($im, true);
$imgname = "result.png";
imagepng($im, $imgname ); // save image as gif
imagedestroy($im);

编辑::这是一个足够简单的脚本。

当我使用gif时,颜色发生了变化,并保存了新图像。当一个改为.png。颜色不再更改,因此原始图像不会更改脚本。

1 个答案:

答案 0 :(得分:0)

是PNG-24吗?据我所知,这只适用于PNG-8。也许您可以尝试使用Imagick