为什么我的ImageMagick使用不同于预期的效果进行色调调整?
我找到了照片过滤器的Instagraph PHP库(,)。然而,我发现在我的盒子上,它输出的图像与Netuts上显示的图像不同。因为我对照片过滤器或ImageMagick的魔法没有进一步的了解,我需要你们的帮助,ImageMagick魔术师:-) 我对问题进行了本地化,它必须位于为什么我的ImageMagick使用不同于预期的效果进行色调调整?,imagemagick,imagemagick-convert,Imagemagick,Imagemagick Convert,我找到了照片过滤器的Instagraph PHP库(,)。然而,我发现在我的盒子上,它输出的图像与Netuts上显示的图像不同。因为我对照片过滤器或ImageMagick的魔法没有进一步的了解,我需要你们的帮助,ImageMagick魔术师:-) 我对问题进行了本地化,它必须位于colortone函数中,否则过滤器工作正常。让我们以烤面包机为例,因为它只执行一次色调转换 由生成的代码(bash转义): 完成过滤器的命令序列的其余部分(这些应该是正确的): 现在,让我们看看烤面包机过滤器的预期结果
colortone
函数中,否则过滤器工作正常。让我们以烤面包机为例,因为它只执行一次色调转换
由生成的代码(bash转义):
完成过滤器的命令序列的其余部分(这些应该是正确的):
现在,让我们看看烤面包机过滤器的预期结果:
但是,我的脚本生成以下内容:
颜色暗了很多,但我不知道为什么。解释这种行为可能只有两种选择:
$ convert --version
Version: ImageMagick 6.7.7-10 2012-08-17 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
我编译了我自己最新的ImageMagick上游版本,它产生了相同的错误输出
$ convert --version
Version: ImageMagick 6.8.3-9 2013-03-15 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib djvu mpeg fontconfig freetype jbig jng jp2 jpeg lcms lqr lzma openexr png ps tiff x xml zlib
:
英语:添加-设置颜色空间RGB
,强制图像处于线性RGB颜色空间
感谢Instagraph的作者和在我的调查中提供的帮助。出现此问题的原因是ImageMagick在版本6.7.7-8中已经出现,并开始默认将图像视为sRGB Dejan开发并测试了Instagraph 6.7.5版,该版本在当时处于上游。编写过滤器时假定RGB为默认颜色空间(以前ImageMagick的默认行为)。我在ImageMagick 6.7.7-10和6.8.3-9中尝试了相同的代码,因此得到了不同的输出
如果添加了
-set colorspace RGB
,图像将转换为线性RGB,并且过滤器在设计时工作正常。另一个解决方案(可能更好)是调整colortone子过程,使其在sRGB colorspace中也能工作,但这远远超出了我目前的知识范围,所以我对此非常满意,比如说热修复。在调用self.imagemagick(…)
之前,您能否执行打印命令
,并显示输出?我还注意到第一个字符串中的-composite
后面有一个文件名,但第二个字符串中没有。self.imagemagick
添加文件名。命令扩展到”(-clone 0-fill-330000-colorize 100%)(-clone 0-colorspace gray-negate)-compose blend-define compose:args=100,0-composite'
第一个字符串基本上是通过登录内部的self.imagemagick
函数输出的。如果直接从shell运行imagemagick,您能获得正确的输出吗?我根据进一步的调查更改了这个问题。确切地知道哪个版本,更重要的是,作者使用的配置选项和用于上述配置选项的库版本将对您的诊断有很大帮助。请记住,Imagemagick利用了几个不同的编程库,其中任何一个都可能影响渲染输出。
$ convert --version
Version: ImageMagick 6.7.7-10 2012-08-17 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
$ convert --version
Version: ImageMagick 6.8.3-9 2013-03-15 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib djvu mpeg fontconfig freetype jbig jng jp2 jpeg lcms lqr lzma openexr png ps tiff x xml zlib
convert -set colorspace RGB test.jpg \( -clone 0 -fill '#330000' -colorize 100% \) \( -clone 0 -colorspace gray -negate \) -compose blend -define compose:args=100,0 -composite test.jpg