Respuestas:
Usa la -negate
opción:
convert input.png -channel RGB -negate output.png
La -negate
opción reemplaza cada píxel con su color complementario. La -channel RGB
opción es necesaria a partir de ImageMagick 7 para evitar que se niegue el canal alfa (si está presente). (¡Gracias a @yoya por esta información!)
Consulte también la documentación de -negate
.
-channel RGB -negate
para evitar eso.
-channel RGB
lo que no es necesario. Solo invierte el canal alfa si paso -channel RGBA -negate
. No estoy seguro de qué explica el comportamiento diferente.
identify
ve la entrada como "sRGB de 8 bits", la salida es "Gris de escala de grises de 8 bits".
ImageMagick 6.x puede invertir intensidades de color solo con la opción -negate. ref) https://www.imagemagick.org/script/command-line-options.php#negate
convert input.png -negate output.png
ImageMagick 7.x requiere la opción -channel con -negate. ref) https://imagemagick.org/script/porting.php#cli Opciones modificadas
convert input.png -channel RGB -negate output.png
Esto se debe a que los canales activos predeterminados contienen transparencia (opaca / alfa) en ImageMagick 7.x
ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels
La mayoría de los algoritmos actualizan los canales rojo, verde, azul, negro (para CMYK) y alfa. La usabilidad de -negate parece ser sacrificada por la consistencia general.
Más detalles para ti. http://blog.awm.jp/2018/11/18/im7negate/
convert input.png -negate output.png
funciona bien para mí en ImageMagick 7.0.8 (ArchLinux)
identify -verbose input.png | grep Type
Supera TrueColor o TrueColorAlpha.
-channel RGB
a mi respuesta.