63 votes

Inverser les couleurs avec ImageMagick

Comment inverser les couleurs d'une image à l'aide d'ImageMagick ? convert pour que le noir devienne blanc et que le blanc devienne noir ?

En d'autres termes, je veux transformer ça :

original

dans ceci :

inverted

99voto

Jo Liss Points 3481

を使用します。 -negate opción:

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

Le site -negate remplace chaque pixel par sa couleur complémentaire. Le site -channel RGB est nécessaire à partir d'ImageMagick 7 pour éviter que le canal alpha (s'il est présent) ne soit annulé. (Merci à @yoya pour cette remarque).

Voir également le documentation para -negate .

10voto

yoya Points 101

ImageMagick 6.x peut inverser l'intensité des couleurs avec l'option -negate uniquement. réf) https://www.imagemagick.org/script/command-line-options.php#negate

convert input.png -negate output.png

ImageMagick 7.x requiert l'option -channel avec -negate. réf) https://imagemagick.org/script/porting.php#cli Options modifiées

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

Ceci est dû au fait que les canaux actifs par défaut contiennent de la transparence (opaque/alpha) dans ImageMagick 7.x.

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

La plupart des algorithmes mettent à jour les canaux rouge, vert, bleu, noir (pour CMYK) et alpha. La facilité d'utilisation de -negate semble être sacrifiée pour la cohérence globale.

Plus de détails pour vous. http://blog.awm.jp/2018/11/18/im7negate/

2voto

eigenfield Points 153

L'encre noire de mon imprimante Canon Pixma est épuisée et je ne peux pas imprimer mon code QR qui est en noir et blanc. Vous ne pouvez pas inverser les couleurs, car lorsque le noir devient blanc et le blanc devient noir, le périmètre du carré se confond avec le papier blanc et le code QR ne peut pas être scanné. Cela fait partie de la spécification du code QR en ce qui concerne le maintien de la limite du carré visuellement discernable.

Par conséquent, j'ai dû changer chaque couleur noire en bleu en utilisant la commande imagemagick convert :

convert qrdata89.bmp -fuzz 20% -fill blue -opaque black qrdata89_blue.bmp

Problème résolu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X