为什么imagemagick会扭曲Ubuntu 12.04 LTS上某些实验室资源中的颜色?

时间:2013-08-19 16:06:59

标签: imagemagick imagemagick-convert libtiff

Example of the problem.

使用此Lab / TIF图像(以及其他):

http://cl.ly/3D2g0M1R4036

在我的服务器上运行时,运行convert file1.tif file1.jpg会导致此失真结果,即Ubuntu 12.04 LTS。这是运行ImageMagick 6.6.9-7:

http://cl.ly/image/3P253v2y3L2x

在Mac上本地运行的同一命令没有相同的问题。我已经在本地测试了HomeBrew(6.8.0-10)安装的ImageMagick版本以及手动编译的6.6.9-7,以便尽可能与服务器进行比较。

我曾怀疑它可能是libtiff的版本,因为Mac有4.0.3,而服务器有3.9.5,但是我刚用新的ImageMagick对新的Ubuntu安装进行了测试, libtiff 3.9.5,问题仍然存在。

有什么明显的吗?

1 个答案:

答案 0 :(得分:1)

运行tiffinfo表示“file1.tif”的颜色空间为 CIELab 。通过apt-get安装的Ubuntu的ImageMagick将具有 Lab - 但不是 CIELab 。这可以通过在两个系统之间运行以下命令来确认。

 identify -list colorspace

我不确定这两个颜色空间之间的区别是什么(有关色度值的东西),但这有助于您体验的照明。

解决方案是在您的Ubuntu服务器/机器(包括CIELab)上从源安装ImageMagick。其他人经历过related issues;这是从源头构建后解决的。

  • 使用apt-get
    • 卸载ImageMagick
    • 为每个依赖库安装开发包(即libtiff-dev
  • 关注ImageMagick的documentation

<强>更新

您还可以使用-set选项显式设置颜色空间。还要添加-verbose选项以评估ImageMagick正在执行的操作。

convert -verbose file1.tiff -set colorspace CIELab -colorspace sRGB file1.jpg
# Output
file1.tif TIFF 1451x1865 1451x1865+0+0 8-bit CIELab 1.326MB 0.110u 0:00.109
file1.tif=>file1.jpg TIFF 1451x1865 1451x1865+0+0 8-bit sRGB 411KB 0.820u 0:00.840