Category Archives: Aplicaciones libres

Tratar imágenes en la línea de comando con imagemagick

Posted on by 0 comment
Con imagemagick puedes tratar archivos de fotos desde la consola, permitiéndote crear pequeños script para automatizar el trabajo. Los comandos incluidos tienen una gran variedad de funciones, desde las simples a las mas complejas.
En esta entrada reflejaré una pequeña muestra de ellas.
La aplicación está disponible para múltiples plataformas. Unix – Linux, Mac OS-X, iPhone, Windows, todas ellas las puedes encontrar en el portal de Imagemagick.

Trabajando con Imagemagick:

  • Convertir un pdf de 16 páginas en imágenes
convert -resize 1400x1400 ../archivo.pdf[0-16] imagenespdf-%05d.png
  • Crear miniatura de la foto
convert -thumbnail 80x80 imagen.png nuevaimagen.png
  • Cambiar de formato
convert -format jpg imagen.png
  • Cambiar tamaño
mogrify -resize 60% fotito.png
mogrify -resize 100x60 fotito.png
convert -sample 50%x50% imgagen.jpg nuevaimagen.jpg
convert -resize 800x600 imagen.jpg nuevaimagen.jpg
  • Cambiar calidad (jpg)
convert -quality 85 imagen.jpg nuevaimagen.jpg
  • Información de una foto con datos incrustados (exif)
identify -verbose imagen.png
  • Rotar
convert -rotate 90 input.jpg output.jpg

¿Y para automatizarlo? Por ejemplo, en Linux-Unix puedes automatizarlo de manera sencilla con comandos del bash.

E aquí algunos ejemplos:

  • Redimensionar todas las fotos de la carpeta actual
for i in *.jpg; do convert -resize 190x52 $i $i; echo $i; done
  • Reducir y comprimir todas las fotos de una carpeta
for i in *.jpg; do convert -resize 650 $i web_$i; echo $i; done
o
for i in *.jpg; do convert -resize x650 $i web_$i; echo $i; done
y
for i in web*.jpg; do convert -quality 55 $i $i; echo $i; done
  • Borramos el perfil incrustado, comentarios y toda la información exif
for i in *.jpg; do convert -strip "$i" "$i"; echo "$i"; done
  • Y ahora un todo en uno
for i in *.jpg; do convert -resample 72x72 -profile /usr/share/color/icc/sRGB.icm -intent relative -resize 600x600 -quality 55 "$i" "$i"; echo "$i"; done

Cada jpg, lo pasa a 72dpi, le cambia el perfil incrustado a sRGB, la conversión de colores al cambiar el perfil es de modo relativo, la redimensionamos a 600 puntos el lado mas largo (sin deformar) y la comprimimos a calidad 55 (100 es el maximo de calidad)

Para practicar ya tenéis algo. Podéis encontrar un manual con ejemplos en http://www.rpublica.net/imagemagick/

Bye