Anteriormente expliqué cómo convertir entre formatos de imágenes desde línea de comandos con convert, veamos ahora cómo realizar otra interesante tarea por lotes y desde línea de comandos: redimensionar múltiples imágenes a la vez.

Suele ocurrir que es necesario redimensionar múltiples imágenes, por ejemplo capturas para subir a una Wiki o documentación, y se debe hacer una por una, lo cual es tedioso y lleva mucho tiempo. Afortunadamente convert (parte del paquete ImageMagick) permite redimensionar imágenes desde línea de comandos, lo cual habilita el uso de scripts o oneliners para trabajar con más de una imagen en simultáneo.

La opción -resize toma como parámetro un valor WxH (ancho por alto, por ejemplo "800x600") donde cada uno de los valores es el máximo que tendrá la imagen destino manteniendo su relación de aspecto. Por ejemplo, si pasamos como parámetro "800x600" y una imagen tiene las dimensiones 1000x1000 (relación de aspecto 1:1), el resultado final será 600x600 (máximo alto posible manteniendo su relación de aspecto). Esta característica es maravillosa para no deformar las imágenes al momento de redimensionar.

Entonces sólo basta con tener en cuenta que una imagen tendrá un ancho o alto máximo según los valores especificados.

Para convertir múltiples imágenes al mismo tiempo utilizo el siguiente comando:

$ find . -name "*.jpg" -exec convert \{} -verbose -resize ANCHOxALTO\> \{} \;

Reemplazando ANCHO y ALTO por los valores deseados.

Por ejemplo para redimensionar imágenes a un máximo de 450x2181:

emi@vaio:~/images$ find . -name "*.jpg" -exec convert \{} -verbose -resize 450X2181\> \{} \;
./20201211-114631_Outlook.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 51409B 0.220u 0:00.060
./20201211-120324_Gmail.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 57203B 0.220u 0:00.059
./20201211-115751_Outlook.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 43002B 0.210u 0:00.059
./20201211-133622_Outlook.jpg JPEG 1080x2182=>450x909 450x909+0+0 8-bit sRGB 49632B 0.250u 0:00.070
./20201211-114708_Outlook.jpg JPEG 1080x1440=>450x600 450x600+0+0 8-bit sRGB 59721B 0.140u 0:00.040
./20201211-120257_Gmail.jpg JPEG 1080x946=>450x394 450x394+0+0 8-bit sRGB 21875B 0.110u 0:00.029
./20201211-115646_Outlook.jpg JPEG 1080x1680=>450x700 450x700+0+0 8-bit sRGB 47993B 0.160u 0:00.039
./20201211-115800_Outlook.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 84663B 0.210u 0:00.059
./20201211-120104_Gmail.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 22733B 0.200u 0:00.060
./20201211-120022_Gmail.jpg JPEG 1080x1105=>450x460 450x460+0+0 8-bit sRGB 19877B 0.120u 0:00.030
./20201211-120041_Gmail.jpg JPEG 1080x1143=>450x476 450x476+0+0 8-bit sRGB 25935B 0.120u 0:00.029
./20201211-115859_Gmail.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 51204B 0.210u 0:00.059
./20201211-115914_Gmail.jpg JPEG 1080x1939=>450x808 450x808+0+0 8-bit sRGB 37226B 0.180u 0:00.050
./20201211-122228_Google-Play-Store.jpg JPEG 1080x1228=>450x512 450x512+0+0 8-bit sRGB 47816B 0.120u 0:00.039
./20201211-120145_Settings.jpg JPEG 1080x929=>450x387 450x387+0+0 8-bit Grayscale Gray 13959B 0.100u 0:00.030
./20201211-115906_Gmail.jpg JPEG 1080x1034=>450x431 450x431+0+0 8-bit sRGB 18233B 0.100u 0:00.029
./20201211-115736_Outlook.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 66001B 0.210u 0:00.060
./20201211-115848_Gmail.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 69136B 0.200u 0:00.059
./20201211-114533_Outlook.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 73007B 0.200u 0:00.060
./20201211-114601_Outlook.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 51540B 0.210u 0:00.059
./20201211-114616_Outlook.jpg JPEG 1080x2181=>450x909 450x909+0+0 8-bit sRGB 63960B 0.220u 0:00.060

Compartí este artículo