【发布时间】:2011-04-12 09:35:47
【问题描述】:
我有一个透明背景的 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);
EDIT :: 这是一个足够简单的脚本。
当我使用 gif 时,颜色发生了变化并保存了新图像。当 a 更改为 .png。颜色不再改变,因此原始图像通过脚本保持不变。
【问题讨论】:
-
定义“不起作用”和“它坏了”。
-
将“故障”定义为“停止工作”是没有用的。 :)
-
我不知道如何使它更清晰...脚本做一件事...它改变一种颜色...它与 gif 一起工作...它不起作用用 png...
-
此方法仅在您使用使用调色板(颜色数