使用PHP的Imagick的tintImage
函数时,我遇到颜色问题。在我的本地开发环境中,一切看起来都很好,但在生产环境中,颜色已经关闭。
在下面的每个例子中,我将显示我正在使用的值,然后是左边的原始图像,中间的开发环境生成的“正确”版本,以及生成的“错误”版本通过右边的生产环境。
$image->tintImage("rgb(57, 32, 109)", "rgb(128, 128, 128, 0.9)");
$image->tintImage("rgb(142, 43, 98"), "rgb(128, 128, 128, 0.9)");
$image->tintImage("rgb(218, 21, 2)", "rgb(128, 128, 128, 0.9)");
$image->tintImage("rgb(171, 25, 158)", "rgb(128, 128, 128, 0.9)");
我不知道为什么会这样。驱动应用程序的PHP代码在dev和prod环境中是相同的。我该如何诊断这个问题?
答案 0 :(得分:1)
未指定时的colourspace假设在某些时候发生了变化。
如果未指定,则较新版本会假定为sRGB
。因此,如果较新版本的结果看起来正确,请在打开图像后立即设置sRGB
色彩空间,以使旧版本的工作方式相同。
相反,如果旧版本的结果看起来正确,请在打开后立即设置RGB
色彩空间,以使新版本像旧版本一样工作。