Cuando queremos redimensionar una imagen se puede hacer de manera sencilla con múltiples programas: Gimp, MyPaint, Krita, Gthumb… etc. Pero… ¿y si en vez de una tuviésemos que redimensionar miles de ellas? ¿Lo harías una por una? Creo que no.

Para ello existen herramientas especializadas en conversión de imágenes en lote con unos parámetros predefinidos de tal manera, que al directorio que le digamos, aplicará los cambios establecidos.

intalar imagemagick

Instalamos la librería imagemagick:

sudo apt-get install imagemagick

redimensionado en lote

Con todas las imágenes en el mismo directorio directorioimagenes, accedemos a él:

cd directorioimagenes

ahora ejecutamos el comando mogrify, en este caso, nos reduce todas las imágenes con extensión jpg al 50%, manteniendo su relación de aspecto.

mogrify -resize 50% -format jpg *

también podemos establecer un tamaño determinado:

mogrify -resize 800x600 -format jpg *

y podemos dimensionar todas las imágenes de un directorio a una calidad del 80% cuyo ancho sea mayor de 800 pixeles a un tamaño de 800 pixeles por el alto que corresponda manteniendo la relación de aspecto:

mogrify -resize 800">" -quality 80 *.jpg

también podemos modificar la calidad de unas imagenes sin reducir su tamaño:

mogrify -quality 80 *.jpg

Otro pequeño script, para redimensionar imágenes con el mismo criterio que el anterior, pero buscando recursivamente en directorios imágenes png, jpg y jpeg.

Este primer comando, muestra las imagenes que se van a redimensionar al tener un echo.

find . \( -iname \*.png -o -iname \*.jpg -o -iname \*.jpeg \) -exec echo mogrify -resize 800">" -quality 80 {} \;

Este otro, ejecuta el comando de redimensionado recursivo de imagenes:

find . \( -iname \*.png -o -iname \*.jpg -o -iname \*.jpeg \) -exec mogrify -resize 800">" -quality 80 {} \;