web-dev-qa-db-ja.com

ImageMagickで色を反転する

ImageMagick convertツールを使用して画像の色を反転し、黒が白になり白が黒になるにはどうすればよいですか?

言い換えれば、私はこれを変えたいです。

original

これに:

inverted

24
Jo Liss

-negateオプションを使用してください。

convert input.png -channel RGB -negate output.png

-negateオプションは各ピクセルを補色で置き換えます。 ImageMagick 7以降では、アルファチャンネル(存在する場合)が無効にならないようにするために-channel RGBオプションが必要です。 (この洞察をありがとう、@ yoya!)

-negateについては ドキュメント もご覧ください。

34
Jo Liss

ImageMagick 6.xは、-negateオプションでのみ色の濃さを反転できます。 ref) https://www.imagemagick.org/script/command-line-options.php#negate

convert input.png -negate output.png

ImageMagick 7.xは、-negateと一緒に-channelオプションを必要とします。 ref) https://imagemagick.org/script/porting.php#cli 変更されたオプション

convert input.png -channel RGB -negate output.png

これは、ImageMagick 7.xでは、デフォルトのアクティブチャンネルに透明度(不透明/アルファ)が含まれているためです。

ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels

ほとんどのアルゴリズムは、赤、緑、青、黒(CMYKの場合)、およびアルファチャンネルを更新します。 -negateのユーザビリティは全体的な一貫性のために犠牲にされるようです。

もっと詳しく http://blog.awm.jp/2018/11/18/im7negate/

2
yoya