写真フィルター用のInstagraphPHPライブラリ(GitHub、NetTuts )を見つけました。しかし、私の箱では、NetTutsで表示されるのと同じ画像が出力されないことがわかりました。私は写真フィルターやImageMagickの魔法についてこれ以上の知識がないので、ImageMagickの魔術師の皆さんの助けが必要です:-)
問題をローカライズしましたがcolortone
、それ以外の場合はフィルターが適切に機能するため、機能内にある必要があります。Toasterは1つのカラートーン変換のみを実行するため、ショーケースとして取り上げましょう。
カラートーン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
それでは、トースターフィルターの期待される結果を見てみましょう。
ただし、私のスクリプトは次のように生成します。
かなり暗いですが、理由はわかりません。このような動作を説明するには、おそらく2つのオプションしかありません。
- ライブラリの作成者のライブラリにバグがあります。(私はそうは思いませんが、それでも可能です...)
- 私の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