GNU/Linux >> Tutoriales Linux >  >> Linux

Convierta la imagen en escala de grises en una imagen de canal alfa en unix Shell

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.


Linux
  1. Matrices en Unix Bourne Shell?

  2. ¿Convertir un enlace duro en un enlace simbólico?

  3. ¿Extensiones de archivo para secuencias de comandos de Unix Shell?

  4. ¿Cómo convertir la salida de shell de Linux a HTML?

  5. ¿Cómo convierto una imagen de disco de Linux en un archivo disperso?

Convierta su instalación de Windows en una VM en Linux

Cómo convertir un archivo de Windows a un archivo UNIX

¿Convertir glifos TrueType a imagen PNG?

Convertir .txt a .csv en shell

Convertir imagen a texto

Dividir una imagen dd en varios archivos