Imagick tintImage颜色不一致

时间:2017-10-11 00:39:55

标签: php image-processing colors imagick

使用PHP的Imagick的tintImage函数时,我遇到颜色问题。在我的本地开发环境中,一切看起来都很好,但在生产环境中,颜色已经关闭。

在下面的每个例子中,我将显示我正在使用的值,然后是左边的原始图像,中间的开发环境生成的“正确”版本,以及生成的“错误”版本通过右边的生产环境。

示例:

$image->tintImage("rgb(57, 32, 109)", "rgb(128, 128, 128, 0.9)");

original correct1 wrong1

$image->tintImage("rgb(142, 43, 98"), "rgb(128, 128, 128, 0.9)");

original correct2 wrong2

$image->tintImage("rgb(218, 21, 2)", "rgb(128, 128, 128, 0.9)");

original correct3 wrong3

$image->tintImage("rgb(171, 25, 158)", "rgb(128, 128, 128, 0.9)");

original correct4 wrong4

我不知道为什么会这样。驱动应用程序的PHP代码在dev和prod环境中是相同的。我该如何诊断这个问题?

1 个答案:

答案 0 :(得分:1)

未指定时的colourspace假设在某些时候发生了变化。

如果未指定,则较新版本会假定为sRGB。因此,如果较新版本的结果看起来正确,请在打开图像后立即设置sRGB色彩空间,以使旧版本的工作方式相同。

相反,如果旧版本的结果看起来正确,请在打开后立即设置RGB色彩空间,以使新版本像旧版本一样工作。