ImageMagick: Editando imágenes por línea de comandos
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 🙂
Imagemagick
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
Cortando pixeles:
convert tux.png -chop 200x200 tux-chop.png
Espejado Horizontal:
convert tux.png -flip tux-flip.png
Espejado vertical:
convert tux.png -flop tux-flip.png
Implode:
convert tux.png -implode 0.5 tux-implode.png
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
Paint:
convert tux.png -paint 5 tux-paint.png
Creando una imagen en miniatura:
convert tux.png -thumbnail 20x20 tux-thumbnail.png
El efecto de onda:
convert tux.png -wave 10x50 tux-wave.png
Difuminando el borde:
convert tux.png -vignette 100x100 tux-vignete.png
Y cortando los excesos:
convert tux.png -trim tux-trim.png
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!!