Risposte:
Usa l' -negate
opzione:
convert input.png -channel RGB -negate output.png
L' -negate
opzione sostituisce ogni pixel con il suo colore complementare. L' -channel RGB
opzione è necessaria a partire da ImageMagick 7 per evitare che il canale alfa (se presente) venga negato. (Grazie a @yoya per questa intuizione!)
Vedi anche la documentazione per -negate
.
-channel RGB -negate
per evitarlo.
-channel RGB
non è necessario. Inverte il canale alfa solo se passo -channel RGBA -negate
. Non sono sicuro di cosa spieghi il diverso comportamento.
identify
vede l'ingresso come "sRGB a 8 bit", l'output è "Gray a scala di grigi a 8 bit".
ImageMagick 6.x può invertire l'intensità del colore solo con l'opzione -negate. rif) https://www.imagemagick.org/script/command-line-options.php#negate
convert input.png -negate output.png
ImageMagick 7.x richiede l'opzione -channel con -negate. ref) https://imagemagick.org/script/porting.php#cli Opzioni modificate
convert input.png -channel RGB -negate output.png
Questo perché i canali attivi predefiniti contengono trasparenza (opaco / alfa) in ImageMagick 7.x
ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels
La maggior parte degli algoritmi aggiorna i canali rosso, verde, blu, nero (per CMYK) e alfa. L'usabilità di -negate sembra essere sacrificata per coerenza generale.
Maggiori dettagli per te. http://blog.awm.jp/2018/11/18/im7negate/
convert input.png -negate output.png
funziona bene per me su ImageMagick 7.0.8 (ArchLinux)
identify -verbose input.png | grep Type
Trasmette TrueColor o TrueColorAlpha.
-channel RGB
alla mia risposta.