【问题标题】:PHP GD Image Library change image color - gif works but jpegs wontPHP GD 图像库更改图像颜色 - gif 有效但 jpegs 不会
【发布时间】:2013-05-31 15:44:45
【问题描述】:

感谢您花时间阅读我的问题:

我正在使用以下代码获取图像,然后将颜色更改为 201,2,255 (r,g,b) - 这是一种紫色阴影,然后输出图像。

$imgname = "input.gif";
$im = imagecreatefromgif ($imgname);

$index = imagecolorclosest ( $im,  201,2,255 ); // get White COlor
imagecolorset($im,$index,60,140,48); // SET NEW COLOR

$imgname = "output.gif";
imagegif($im, $imgname ); // save image as gif
imagedestroy($im);

效果很好,可以在这里看到:http://www.office-desks.co.uk/cache_images/test.php(前 2 张图片)

问题是当我尝试完全相同但使用 jpeg 时它不起作用..(底部 2 张图片)

$imgname = "input.jpg";
$im = imagecreatefromjpeg ($imgname);

$index = imagecolorclosest ( $im,  201,2,255 ); // get pink/purple COlor
imagecolorset($im,$index,60,140,48); // SET NEW DECENT COLOR

$imgname = "output.jpg";
imagejpeg($im, $imgname ); // save image as gif
imagedestroy($im);

如果有人可以帮助我解决这个问题,将不胜感激。在此先感谢大家。

【问题讨论】:

  • 您可以在替换颜色之前将imagetruecolortopalette 应用于资源吗?
  • 谢谢安东尼,你有这方面的例子吗?如何实现到上面的代码中?

标签: php image-processing gd


【解决方案1】:

有点晚了,但我认为这与 JPG 生成的“伪影”(压缩错误)有关。放大 JPG,您会看到与邻居不匹配的像素“颗粒”。这意味着单一颜色的大平面将变成多种颜色,而不是 1 个单一值。

坚持使用 gif 或 png 等无损图像格式。

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 2010-12-25
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多