Réponses:
Utilisez l' -negate
option:
convert input.png -channel RGB -negate output.png
L' -negate
option remplace chaque pixel par sa couleur complémentaire. L' -channel RGB
option est nécessaire à partir d'ImageMagick 7 pour empêcher le canal alpha (s'il est présent) d'être annulé. (Merci à @yoya pour cet aperçu!)
Voir aussi la documentation de -negate
.
-channel RGB -negate
pour éviter cela.
-channel RGB
n'est pas nécessaire. Il inverse uniquement le canal alpha si je passe -channel RGBA -negate
. Je ne sais pas ce qui explique les différents comportements.
identify
l'entrée est "sRGB 8 bits", la sortie est "Gris 8 bits gris".
ImageMagick 6.x peut inverser les intensités de couleur avec l'option -negate uniquement. ref) https://www.imagemagick.org/script/command-line-options.php#negate
convert input.png -negate output.png
ImageMagick 7.x nécessite l'option -channel avec -negate. ref) https://imagemagick.org/script/porting.php#cli Options modifiées
convert input.png -channel RGB -negate output.png
En effet, 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 CMJN) et alpha. La convivialité 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/
convert input.png -negate output.png
fonctionne bien pour moi sur ImageMagick 7.0.8 (ArchLinux)
identify -verbose input.png | grep Type
Il sort TrueColor ou TrueColorAlpha.
-channel RGB
à ma réponse.