Lo sepas o no, es muy probable que ya hayas utilizado ImageMagick, al menos si eres usuario de Linux. Es el procesador de imágenes detrás de muchas aplicaciones relacionadas con los gráficos, y por una buena razón. Con esta herramienta, puedes realizar docenas de manipulaciones y conversiones de imágenes comunes desde la línea de comandos o dentro de un script/aplicación. ImageMagick puede convertir, transformar, dibujar, decorar, animar y componer imágenes. Puede utilizarse desde la línea de comandos para necesidades rápidas o incorporarse a una suite de software más compleja. Esta guía cubrirá algunas de las características más «mágicas» de ImageMagick y proporcionará ejemplos de cómo usarlo para resolver tareas cotidianas.

Una nota sobre convert: El nombre del comando convert se utilizará varias veces a lo largo de esta guía. Es uno de los varios comandos para acceder a las características de ImageMagick, no sólo para convertir entre tipos. El hecho de que comencemos un comando con la palabra convert no significa necesariamente que estemos convirtiendo de un formato de imagen a otro.

Cómo obtener ImageMagick

Está preinstalado en muchos sistemas Linux, por lo que es posible que no tenga que preocuparse de instalarlo en absoluto. Una forma fácil de averiguarlo es abrir una línea de comandos y escribir

que convertir

Si le da un resultado como /usr/bin/convert, entonces está todo listo y puede pasar a la siguiente sección. Si no es así, debería estar disponible en los repositorios estándar de tu distro. Los usuarios de Debian y Ubuntu pueden obtenerlo con

sudoapt-get install imagemagick

Convertir tipos básicos de imágenes

ImageMagick es ideal para realizar conversiones simples de imágenes. Convertir un JPG a PNG, por ejemplo, es tan sencillo como

convertir miImagen.jpg miImagen.png

Es importante notar que el comando convert realiza sus operaciones en una COPIA del archivo. El uso de convert no reemplazará ni sobrescribirá su imagen original.

Transformaciones simples

Mientras conviertes tu imagen, puedes añadir banderas opcionales para realizar transformaciones básicas como rotar, redimensionar y recortar. Como se ha señalado anteriormente, podemos utilizar el comando convert pero eso no significa que debamos elegir un tipo de salida diferente.

#Rotar una imagen 90 grados convert -rotate90 MiImagen.jpg MiImagen-rotada.jpg

imagemagick-rotate

Globbing/Cartas Blancas/Lote

Globbing es un término común para usar comodines (como «*») para representar un grupo de archivos. ImageMagick soporta globbing desde la línea de comandos, por lo que puede realizar operaciones en un grupo de archivos utilizando comodines. Por ejemplo, para convertir todos los archivos JPG de un directorio a PNG, puede utilizar algo así

convertir *.jpg imagen.png

que crearía nuevos archivos PNG, llamados imagen-0.png, imagen-1.png, imagen-2.png, etc.

Crear GIFs animados

El análisis inteligente de comandos de ImageMagick significa que puede determinar lo que probablemente quiera hacer basándose en el tipo de entrada que especifique. En el ejemplo anterior, usamos convert *.jpg image.png y creó una copia individual de cada archivo JPG. ¿Qué pasaría si simplemente sustituyéramos el «.png» por «.gif»? La respuesta no son múltiples archivos GIF, es un GIF animado compuesto por los archivos JPG.

convertir *.jpg mianimado.gif

Efectos de texto

Usando ImageMagick, puedes incluso renderizar gráficos a partir de texto usando la línea de comandos. En este ejemplo estamos especificando el color de fondo, el color del texto, la fuente, el tamaño y el texto a renderizar. En este caso, estoy especificando manualmente la ruta a una fuente TTF.

convert -background lightblue -fill yellow -font/usr/share/fonts/truetype/thai/Purisa.ttf -pointsize72 label:ImageMagick rendertext.png

imagemagick-rendertext

Anotaciones/Marca de agua

A veces puede ser necesario añadir algún texto o un logotipo/gráfico a una imagen existente. Para ello se utiliza la opción -append. En este ejemplo, estoy añadiendo una barra en la parte inferior de mi imagen con una nota sobre el contenido.

Si tengo un archivo llamado tux.jpg

, podría usar lo siguiente para añadir una nota al final:

tux_penguin

convert tux.jpg -background Khaki label:’This is Tux!’-gravity Center -append tux_annotated.jpg

imagemagick-annotated

Conclusión

Los ejemplos mostrados aquí apenas arañan la superficie de lo que ImageMagick puede hacer. Con un poco de tiempo y práctica, y probablemente con la ayuda de esta monstruosa guía, puedes hacer cosas increíbles con este programa. No estás limitado a la línea de comandos, ImageMagick proporciona APIs para C, C++, Java, .NET, Python, y más. Si tienes una historia de lo que ImageMagick ha hecho por ti,