我有一个透明背景的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。颜色不再更改,因此原始图像不会更改脚本。