Convertir todas las imágenes de una carpeta a Webp

Hace poco me di a la tarea de averiguar como convertir todas las imágenes de una carpeta a Webp como optimización final antes de subirlas a este blog.

Mogrify

Al principio me fui con la vieja confiable de mogrify de ImageMagick.

Por ejemplo, convertir todos los archivos jpg de una carpeta es tan sencillo como hacer.

mogrify -format webp *.jpg

Y con eso se soluciona todo … peeeeeerooooo… quise investigar si había algunas opciones para optimizar aún más el tamaño de las imágenes.

cwebp

En esas andaba cuando me encontré con la herramienta de conversión de Google cwebp que funciona excelente. Pero que hasta donde tengo entendido, no puedo convertir carpetas completas de imágenes.

cwebp -m 6 -q 80 -mt -af -progress test1.png -o test1.webp

Otra vez pensé hacer un script estilo bash | zsh que tomara todos los archivos de la carpeta e hiciera la conversión. Pero luego me acordé de un viejo amigo que ya he utilizado anteriormente parallel.

Parallel

Con parallel tengo la ventaja de aplicar el mismo proceso a todos los archivos de una carpeta y asignar el número de procesadores que voy a utilizar para hacer las conversiones.

Dicho esto la instrucción queda más o menos así

parallel -j 3 --eta cwebp -m 6 -q 80 -mt -af -progress '{}' -o '{.}.webp' ::: *.jpg

Con eso logro convertir todas las imágenes jpg a webp de una carpeta. Con algunas pequeñas modificaciones hago lo mismo para convertir los archivos png.

Automatiza y avanza

Ya como cereza del pastel, agregué algunos alias para hacerme la vida más sencilla.

# Conversión de imágenes a webp
alias j2w="parallel -j 3 --eta cwebp -m 6 -q 80 -mt -af -progress '{}' -o '{.}.webp' ::: *.jpg"
alias p2w="parallel -j 3 --eta cwebp -m 6 -q 80 -mt -af -lossless -progress '{}' -o '{.}.webp' ::: *.png"
alias i2w="j2w; p2w"

Un alias para convertir archivos jpg, otro para png y uno más para ambos.

Y con eso tengo más que suficiente para optimizar todas las imágenes de cada artículo que publico en este espacio.

Espero que algo de esta información les sea de utilidad.

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: