【问题标题】:Replace image color and maintain 100% alpha background替换图像颜色并保持 100% alpha 背景
【发布时间】: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...
  • 此方法在您使用使用调色板(颜色数

标签: php gd


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 2017-10-29
    • 2011-09-25
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多