我找到了用于照片过滤器的Instagraph PHP 库(GitHub、NetTuts )。但是,我在我的盒子上发现它输出的图像与 NetTuts 上显示的图像不同。因为我对照片滤镜或 ImageMagick 的魔法一无所知,所以我需要你的帮助,ImageMagick 魔术师 :-)
我本地化了这个问题,它必须在colortone
功能范围内,否则过滤器工作得很好。让我们以Toaster为例,因为它只执行一次色调转换。
colortone PHP 函数生成的代码(bash 转义):
convert test.jpg \( -clone 0 -fill '#330000' -colorize 100% \) \( -clone 0 -colorspace gray -negate \) -compose blend -define compose:args=100,0 -composite test.jpg
完成过滤的命令序列的其余部分(应该没问题):
convert test.jpg -modulate 150,80,100 -gamma 1.2 -contrast -contrast test.jpg
convert test.jpg \( -size 960.0x960.0 radial-gradient:none-LavenderBlush3 -gravity center -crop 640x640+0+0 +repage \) -compose multiply -flatten test.jpg
convert test.jpg \( -size 960.0x960.0 radial-gradient:#ff9966-none -gravity center -crop 640x640+0+0 +repage \) -compose multiply -flatten test.jpg
现在,让我们看看Toaster过滤器的预期结果:
但是,我的脚本产生以下内容:
它更暗,但我不知道为什么。可能只有两种选择可以解释这种行为:
- 图书馆的作者在他的图书馆中有一个错误。(我不这么认为,但仍有可能......)
- 我的 ImageMagick 与作者的不同,因此会产生不同的结果。(这怎么可能发生?)
有谁知道为什么我的 ImageMagick 会产生不同的结果?会不会是一些初始设置?我的 ImageMagick 完全是从标准的 Ubuntu 软件包安装的。
$ 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