Yanıtlar:
-negate
Seçeneği kullanın :
convert input.png -channel RGB -negate output.png
-negate
Seçenek onun tamamlayıcı rengi ile her pikseli değiştirir. -channel RGB
Alfa kanalının (varsa) reddedilmesini önlemek için bu seçenek ImageMagick 7'den itibaren gereklidir. (Bu fikir için @yoya'ya teşekkürler!)
Ayrıca bakınız belgelere için -negate
.
-channel RGB -negate
kaçınmak için kullanın .
-channel RGB
gerekli değildir. Alfa kanalını yalnızca geçersem ters çevirir -channel RGBA -negate
. Farklı davranışı açıklayan şeyin ne olduğundan emin değilim.
identify
girişi "8-bit sRGB" olarak görürken, çıktı "8-bit Gri Tonlamalı Gri" dir.
ImageMagick 6.x yalnızca -negate seçeneği ile renk yoğunluklarını tersine çevirebilir. ref) https://www.imagemagick.org/script/command-line-options.php#negate
convert input.png -negate output.png
ImageMagick 7.x, -negate ile -channel seçeneğini gerektirir. ref) https://imagemagick.org/script/porting.php#cli Değiştirilmiş Seçenekler
convert input.png -channel RGB -negate output.png
Bunun nedeni, varsayılan etkin kanalların ImageMagick 7.x'te saydamlık (opak / alfa) içermesidir.
ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels
Çoğu algoritma kırmızı, yeşil, mavi, siyah (CMYK için) ve alfa kanallarını günceller. -Negate'in kullanılabilirliği genel tutarlılık için feda edilmiş gibi görünüyor.
Sizin için daha fazla detay. http://blog.awm.jp/2018/11/18/im7negate/
convert input.png -negate output.png
ImageMagick 7.0.8'de benim için iyi çalışıyor (ArchLinux)
identify -verbose input.png | grep Type
TrueColor veya TrueColorAlpha çıktı.
-channel RGB
cevabımı ekledim .