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 |
convert -resize 1400x1400 ../archivo.pdf[0-16] imagenespdf-%05d.png
- Crear miniatura de la foto
convert -thumbnail 80x80 imagen.png nuevaimagen.png |
convert -thumbnail 80x80 imagen.png nuevaimagen.png
convert -format jpg imagen.png |
convert -format jpg imagen.png
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 |
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
convert -quality 85 imagen.jpg nuevaimagen.jpg |
convert -quality 85 imagen.jpg nuevaimagen.jpg
- Información de una foto con datos incrustados (exif)
identify -verbose imagen.png |
identify -verbose imagen.png
convert -rotate 90 input.jpg output.jpg |
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 |
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 |
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 |
for i in *.jpg; do convert -strip "$i" "$i"; echo "$i"; done
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 |
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