如何防止Imagick错误地使某些图像变暗

时间:2015-11-03 06:16:07

标签: php imagemagick imagick

我有一个奇怪的想象力问题,我似乎无法诊断。 我有以下源图像:

enter image description here

以下代码:

$img = new Imagick($path);    
header("Cache-Control: private, max-age=10800, pre-check=10800");
header("Pragma: private");
header("Expires: " . date(DATE_RFC822,strtotime(" 11 months")));
header('Content-type: image/png');
echo $img;

这会产生以下图像:

enter image description here

这只发生在我拥有的类似图标图像的大型库的非常小的子集中,我无法弄清楚原因。谷歌搜索我发现一些ImageMagick版本有奇怪的颜色配置文件的问题,但它们都有相同的颜色配置文件(sRGB),它们都是相同的尺寸,虽然这个图像是灰度的,但它没有只发生灰度图像等。

即使是curiouser,它也不会发生在我的登台服务器上,它运行相同版本的php5-imagick(最初是3.2.1但升级到3.3.0RC2,希望能让这个问题消失)。我可以在两台服务器之间找到的唯一相关区别是,当运行phpinfo时,登台(未受影响)服务器会显示

Imagick compiled with ImageMagick version   ImageMagick 6.8.9-9 Q16 x86_64 2015-01-05 http://www.imagemagick.org
Imagick using ImageMagick library version   ImageMagick 6.8.9-9 Q16 x86_64 2015-09-19 http://www.imagemagick.org

生产(受影响)服务器说

Imagick compiled with ImageMagick version   ImageMagick 6.7.7-10 2014-03-08 Q16 http://www.imagemagick.org
Imagick using ImageMagick library version   ImageMagick 6.7.7-10 2014-03-08 Q16 http://www.imagemagick.org

为了解决这个问题,我从源代码编译并在生产服务器上安装了ImageMagick 6.9.2-5。尽管phpinfo返回

,但这仍未影响convert -version仍然报告6.7.7-10的结果
Version: ImageMagick 6.9.2-5 Q16 x86_64 2015-11-02 http://www.imagemagick.org

我无法弄清楚如何将想象扩展指向新的ImageMagick二进制文件。而且我实际上不知道ImageMagick的版本是否会导致这种效果,但我已经没有其他想法了,这是我能找到的唯一区别,所以它是兔子洞我在过去的几个小时里一直在跳下去。

有没有办法在php5-imagick中配置ImageMagick路径?或者是否有其他人在(某些)图像上遇到这种奇怪的效果并以其他方式成功地解决了它?

0 个答案:

没有答案