ImageMagick: Editando imágenes por línea de comandos

Publicado por Diego Córdoba en

Hoy les traigo ImageMagick, una pequeña utilidad de línea de comandos que nos permite editar algunos parámetros de archivos de imagen, y que me ha resultado muy útil últimamente para editar muchas imágenes mediante scripting 🙂


imagemagickImagemagick

La herramienta que usaré se llama ImageMagick, y podemos descargarla en Debian directamente desde los repositorios:

aptitude install imagemagick

Convertir imágenes entre formatos diferentes

Podemos tomar una imagen en un determinado formato, y convertirla en otro de una manera muy sencilla:

convert imagen.png imagen.jpg

Este comando toma la imagen png y la convierte en un archivo jpg.

Además, y particularmente en este formato, podemos especificar la calidad de la imagen jpg resultante, lo que deriva en una disminución del tamaño del archivos jpg:

convert imagen.png -quality 85 imagen.jpg

Cambiando el tamaño de una imágen

Ahora veremos cómo cambiar el tamaño de una determinada imágen, en resolución.

Si queremos fijar el tamaño de una imagen en, por ejemplo, 150×100 pixels, deberemos correr este comando:

convert imagen.png -resize 150x100 imagen_salida.png

Esto cambiará el tamaño de la imagen, pero lo hará manteniendo el aspecto original, por lo que el tamaño resultante puede no ser exactamente el especificado, puesto que depende de las dimensiones originales de la imagen.

Si queremos que el tamaño sea específicamente ese, podremos utilizar el modificador «!» para forzar la conversión en ese tamaño. Veamos un ejemplo:

convert imagen.png -resize 150x100! imagen_salida.png

Si además necesitamos solo fijar o el ancho de la imágen, preservando el aspecto, podremos hacer lo siguiente:

convert imagen.png -resize 150 imagen_salida.png

O, de la misma forma, solo fijar el alto:

convert imagen.png -resize x100 imagen_salida.png

Rotando

Ahora vamos a rotar en un número de grados una imágen generando una resultante rotada:

convert imagen.png -rotate 90 imagen_salida.png

Y algunos efectos interesantes…

Ahora veamos algunos efectos interesantes que podemos aplicarle a las imágenes. Vamos a partir de la imagen de nuestro conocido Tux:

El efecto Charcoal:

convert tux.png -charcoal 10 tux-chop.png
tux-charcoal ImageMagick

Cortando pixeles:

convert tux.png -chop 200x200 tux-chop.png

tux-chop ImageMagick

Espejado Horizontal:

convert tux.png -flip tux-flip.png
tux-flip ImageMagick

Espejado vertical:

convert tux.png -flop tux-flip.png
tux-flop ImageMagick

Implode:

convert tux.png -implode 0.5 tux-implode.png
tux-implode ImageMagick

Duplicando la resolución de la imagen:

convert tux.png -magnify tux-magnify.png
diego@cryptos:~/Dropbox/cla/txt/posts/linux_logo$ file tux.png 
tux.png: PNG image data, 800 x 600, 8-bit/color RGBA, non-interlaced
diego@cryptos:~/Dropbox/cla/txt/posts/linux_logo$ file tux-magnify.png 
tux-magnify.png: PNG image data, 1600 x 1200, 8-bit/color RGBA, non-interlaced

Monocromo?

convert tux.png -monochrome tux-monochrome.png
tux-monochrome ImageMagick

Paint:

convert tux.png -paint 5 tux-paint.png
tux-paint ImageMagick

Creando una imagen en miniatura:

convert tux.png -thumbnail 20x20 tux-thumbnail.png
tux-thumbnail

El efecto de onda:

convert tux.png -wave 10x50 tux-wave.png
tux-wave ImageMagick

Difuminando el borde:

convert tux.png -vignette 100x100 tux-vignete.png
tux-vignete ImageMagick

Y cortando los excesos:

convert tux.png -trim tux-trim.png
tux-trim ImageMagick

Por supuesto, hay más efectos y modificadores en:

man convert

… una forma sutil de decir… #RTFM 🙂

Por cierto, pueden encontrar la documentación oficial de ImageMagick en https://www.imagemagick.org/script/index.php

¡¡Hasta la próxima!!


Diego Córdoba

- Ingeniero en Informática - Mg. Teleinformática - Tesis pendiente - Docente universitario - Investigador