En este momento estás viendo ImageMagick: Cambiar tamaño y formato de fotos en lote con convert

ImageMagick: Cambiar tamaño y formato de fotos en lote con convert

Cambiar el tamaño y/o formato de las fotos es algo sencillo de hacer con cualquier programa que trate el tema de imágenes. Incluso aquellos destinados a visualizar fotos suelen permitir opciones para cambiar el tamaño o cambiar de formato (por ejemplo de PNG a JPEG).

Muchas veces, personalmente me encuentro con la necesidad de cambiar el tamaño de fotos para reducir su tamaño y, por ejemplo, enviarlas por email o subirlas a carpetas compartidas en Dropbox o Google Drive.

El problema surge cuando queremos modificar muchas fotos a la vez. Ya no es una ni dos ni tres fotos las que quiero modificar, sino muchas y de forma automática.

Supongamos que después de hacer 50 fotos con nuestra cámara queremos enviárselas a alguien mediante email, Dropbox, Google Drive o simplemente un FTP; y la persona que la recibirá o verá no necesita la imagen original de gran tamaño (en píxeles y en megabytes).

Para esto, en Linux tenemos una solución muy buena: usar la herramienta Convert de ImageMagick en un Shell Script para hacer la conversión por lotes. Windows y MacOS también cuenta con una versión de este programa. Veamos cómo hacerlo.

1) Tener instalado dicha herramienta.

Lo primero será tener instalada dicha herramienta. Dependiendo del sistema operativo Linux se hará de una u otra forma. Si tienes la herramienta de consola apt-get o aptitude puedes instalarla simplemente haciendo:

apt-get install imagemagick
o
aptitude install imagemagick

Con herramientas visuales como un gestor de paquetes puedes buscarlo e instalarlo del mismo modo.

Para Windows, en la web de ImageMagick pueden descargarse los ejecutables para instalarlo.

2) Convertir una imagen

Centrándonos en la consola de Linux, convertir una imagen es tan sencillo como ejecutar el programa convert con las opciones adecuadas. Veamos el siguiente ejemplo para entenderlo más fácilmente:

convert fotoorigen.jpg -resize 800x600 -quality 90 fotoresultado.jpg

Observamos en los parámetros las fotos de origen y de resultado, el tamaño con el que será convertido (-resize 800×600, 800 píxeles de ancho por 600 de alto) y la calidad (-quality 90, es decir al 90%).

Para cambiar de formato simplemente cambiamos la extensión de la foto resultado. Por ejemplo, para cambiar de JPEG a PNG haríamos:

convert fotoorigen.jpg fotoorigen.png

También podemos combinar el cambio de formato con el cambio de tamaño para hacerlo todo en una sola llamada al programa convert, por ejemplo:

convert fotoorigen.jpg -resize 800x600 -quality 90 fotoresultado.png

3) Proceso en lote

Y ahora viene lo bueno de lo bueno. ¿Cómo usar todo esto para convertir muchas fotos simultáneamente sin la necesidad de ir manualmente una a una?.

En Linux podemos usar un Shell Script. En Windows podría usarse un archivo por lotes BAT. En este caso, usamos Linux y la idea es recorrer todas las fotos de un directorio donde previamente hemos colocado las imágenes que queremos convertir y guardar las fotos resultados en un subdirectorio llamado “convertidas” para no perder las imágenes originales.

Crea un fichero y llámalo por ejemplo «convertir.sh». Dale permisos de ejecución (chmod 755 convertir.sh). Y añade lo que contendría nuestro shell script, que quedaría tal que así:

#!/bin/bash
mkdir convertidas
for img in *.jpeg
do
   convert "$img" -resize 800x600 -quality 90 "convertidas/$img"
done

Este script básico simplemente recorre las fotos del directorio donde lo ejecutamos y escala las fotos a 800×600 en una calidad al 90% guardándolas posteriormente en un directorio llamado “convertidas” que, si no existe, es creado previamente (mkdir).

Es un script muy básico que podría ampliarse para hacer otras cosas como cambiar de formato (simplemente añadir una nueva extensión, como vimos anteriormente).

Si observamos los parámetros posibles del programa convert con la opción de ayuda (convert -h) veremos todas las posibilidades que tiene.

De esta sencilla manera tendremos convertidas todas nuestras imágenes con un solo “clic” en un tiempo récord.

¡Que disfrutéis haciendo fotos (y convirtiéndolas)!

Más información: Web oficial de ImageMagick

Francisco Perles

Francisco Perles, Ingeniero Técnico en Informática de Sistemas y experto en desarrollo web, PHP, MySQL, Linux, HTML, CSS, AJAX, jQuery y administración de sistemas y redes.

Esta entrada tiene un comentario

  1. Iris Fernández

    ¡Excelente post! Me sirvió muchísimo la herramienta! Gracias

Deja una respuesta