Ooookay Después de mucho buscar en Google y leer más del manual de ImageMagick de lo que realmente me interesa, aquí está la respuesta. Dado que tiene una imagen en escala de grises llamada source.png
, aquí están mis comandos.
Para hacer que los píxeles negros sean transparentes y mantener los píxeles blancos como están, ejecute este comando:
convert source.png -alpha copy -fx '#fff' result.png
Para hacer que los píxeles blancos sean transparentes mientras se mantienen los negros tal como están, use:
convert source.png -alpha copy -channel alpha -negate +channel -fx '#000' result.png
Vamos a explicar ese último comando un poco más a fondo:
convert
- Es el comando ImageMagic (uno de varios)
source.png
- La imagen de origen en escala de grises.
-alpha copy
- Copie el contenido del archivo anterior en el canal alfa.
-channel alpha
- Especifique que los siguientes operadores solo deberían afectar el canal alfa.
-negate
- Invierta el canal alfa (debido a lo anterior -chanel alpha
no afectará ninguna otra parte de la imagen).
+channel
- Especifique que los siguientes operadores solo deberían afectar los canales de color y no modificar el canal alfa. (Este es el valor predeterminado y, por lo tanto, no necesitamos proporcionarlo en el primer ejemplo, más simple).
-fx '#000'
- Reemplace el contenido del canal de color con píxeles negros. (Debido +channel
al canal alfa no se verá afectado).
Es bastante importante incluir esa -fx
opción final , de lo contrario, todos los píxeles semitransparentes en la imagen generada conservarán los colores. (Dado que estos píxeles son semitransparentes, puede que no sea obvio, pero el resultado final no es lo que uno espera).
La lista de opciones de ImageMagick me pareció bastante útil.