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 haga que los píxeles negros sean transparentes y mantiene los píxeles blancos como están, ejecute este comando:
convert source.png -alpha copy -fx '#fff' result.png
Para, en cambio, hacer que los píxeles blancos sean transparentes mientras mantiene el negro como está, use:
convert source.png -alpha copy -channel alpha -negate +channel -fx '#000' result.png
Expliquemos 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 deben afectar el canal alfa.-negate
– Invertir el canal alfa (lo hará, debido al anterior-chanel alpha
no afectará a ninguna otra parte de la imagen).+channel
– Especifique que los siguientes operadores solo deberían afectar los canales de color y ya no modificar el canal alfa. (Este es el valor predeterminado y, por lo tanto, no es necesario que lo proporcionemos en el primer ejemplo más simple).-fx '#000'
– Reemplace el contenido del canal de color con píxeles negros. (Debido a+channel
el canal alfa no se verá afectado).
Es muy importante incluir ese -fx
final de lo contrario, todos los píxeles semitransparentes de 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).
Encontré la lista de opciones de ImageMagick bastante útil.