Cambiar el tamaño a múltiples imágenes… en Linux

Estudiar programación es inútil ni no lo usas o practicas todos los días. He empezado, por mi cuenta, y aprovechando algunos de los mejores manuales que existen en la red, a estudiar programación en bash y en Python, precisamente para aplicarlos a problemas diarios que me surgen día a día en mis tareas con Linux. Pero es para volverse loco.

Hace unos días compré un dominio con su correspondiente hosting, sólo con la intención de colgar algunos álbumes de fotos. Usaré Pixelpost (ya escribiré una entrada al respecto).

Mi problema es el siguiente: no existe un programa similar al de Picasa, que te organice las fotos en álbumes y luego te las suba. La verdad es que mientras utilicé Picasa, me he habituado a lo bueno.

Sí existe un add-on que permite subir las fotos por FTP, y luego exportarlas desde ese directorio. Pero para ello, antes he de reducir las fotos. Mientras que Picasa lo hace por tí (no sube la foto con tamaño 3000×3000 pixeles, sino que las redimensiona para su visualización en la web), en Pixelpost lo tiene que hacer uno mismo.

Una opción es usar un programa editor de imágenes, pero encontré varios problemas:

  1. Casi todas las web que visité utilizaban Photoshop CS3 para hacerlo. La versión CS3 es la usada porque permite hacerlo a múltiples imágenes.
  2. Puedo usar GIMP, que es sofware libre, pero al probarlo, había que hacerlo uno por uno, dado que no permite un “batch processing” de todas ellas a la vez.
  3. Existe un plugin para GIMP, pero no se instala fácilmente (el maldito no se deja complicar en PERL) en mi Debian. Para Ubuntu hay un binario específico, incluso para Windows. Además, lo he probado en Windows, y no me guarda la información EXIF de la foto.

¡Pero tengo GNU/Linux, qué demonios! Tenemos herramientas suficientes para esto y mucho más.

La verdad es que tengo que decir que mientras estuve pegándome con los script de bash, casi me estalla la cabeza. Pero lo he conseguido, aunque quizá no es una manera muy ortodoxa. ¡Soy un principiante! Allá va mi explicación.

La mejor opción es hacer un script en shell bash, y utilizar ImageMagick. Sólo diré que con ImageMagick podemos hacer casi de todo con una imagen, pero desde la consola.

Mi primer script

No, no me refiero al típico “Hola, Mundo”. Lo primero que hice fue hacer un script para poder trabajar con las imágenes. Son 17 fotos, y bien podría haberlas copiado a otro directorio para poder trabajar con ellas, pero preferí hacerlo todo en el mismo directorio (me gusta el riesgo). En mi primer script, intento copiar las imágenes al mismo directorio, para diferenciarlas de las originales.

#!/bin/bash
# rename.sh
# little script I wrote in order to rename ‘file’ to ‘renamed_file’

for pictures in $(ls *.jpg)
do
cp $pictures resize_$pictures
done

Lo he puesto en inglés a propósito. Algún gurú me dirá que es una chapuza. Sí, lo es, y lo admito. Lo apropiado hubiese sido tener de ‘foto1.jpg‘ algo así como ‘foto1_resized.jpg‘, y si me hubiera puesto a ello, quizá podría haberlo conseguido, pero ¿no acabo de decir que casi me estalla la cabeza?

Mi segundo script

Bien, una vez renombrados los ficheros, es hora de redimensionarlos. En mi caso, he usado la utilísima y rapidísima (¡Chúpate ésa, Photoshop!) ImageMagick. Si bien es cierto que podía haber usado libjpeg-progs y haber escrito la orden ‘djpeg -scale’, preferí la orden ‘convert’ de ImageMagick:

#!/bin/bash
# resize.sh
# little script I wrote in order to resize my pictures to 800x600px

for pictures in $(ls resized*.jpg)
do
convert $pictures -resize 800×600 /home/rafa/fotos/$pictures
done

Con lo que me di cuenta que no hubiera sido necesario hacer el primer script.

Si hay alguien que lo hubiera hecho mejor, que me lo diga, o que deje un comentario. Mi intención inicial era hacer el segundo script, pero sin la obligación de dejar las fotos en otro directorio, sino en el mismo, pero con distinto nombre, tal y como hubiese obtenido al teclear esta orden:

convert foto_1.jpg -resize 800×600 foto_1_resized-jpg

¿Alguna idea?

Links que me ayudaron

Con respecto a ImageMagick:

Y por último, y alguien tiene Ubuntu, os dejo el link en el que se explica cómo usar el plugin para GIMP, en Ulissesonline.com.

Actualización: Tres enlaces más:

6 opiniones en “Cambiar el tamaño a múltiples imágenes… en Linux”

  1. Yo creo que le faltan muchas cosas, lo que pasa es que es una adecuada alternativa libre. Bueno, no, creo que es la MEJOR alternativa libre para los que antes usábamos Photoshop. Pero quizá eso también es bueno, saber desligarse de PS y no ir un paso por detrás. No he sabido cómo solucionar lo de las acciones de PS, aunque tampoco me he puesto a buscarlo por Google. Gracias por el cometnario!

  2. Pues yo lo estuve mirando hace tiempo pero me parece un poco coñazo, supongo que condicionado porque en PS es muy sencillo de hacer, lo más parecido que encontré es como crear scripts, aquí explican un poco, pero todavía faltaría hacer que ell GIMP lo ejecutase a múltiples imágenes.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *