martes, 18 de agosto de 2026

Convertir imágenes JPG a Web recursivamente en varias carpetas

JPG a WEBP

 Imagen creada con Gemini

Tarea a realizar

La tarea a realizar en uno de los traslados de página web:

  • Tengo una carpeta, y dentro muchas subcarpetas (un árbol de carpetas)
  • Dentro de cada una de las carpetas tengo diferents imágenes de diferentes formatos (jpg, jpeg y png
Tarea a realizar

  • De forma sencilla convertir todas esas imágenes en formato webp y reducirlas en tamaño si superan 950px de ancho o 750px de alto.

Qué necesitamos

Necesitaremos un programita (o programazo según mi opinión) que trabaja con imágenes desde la terminal: imagemagick

Por otro lado, un mínim de conocimientos de saber utilizar el terminal.

Cómo lo hacemos

Fácil. 

  1. Nos vamos a la carpeta raiz donde tengamos todas las subcarpetas a trabajar con el explorador de ficheros
  2. Pulsamos botón derecho y escogemos la opción de Abrir un terminal
  3. Se abrirá el terminal situándose ya en la carpeta que necesitamos
  4. Ejecutamos la siguiente orden:

find . -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.jpeg" \) -exec sh -c '

  for img; do

    magick "$img" -resize "900x750>" "${img%.*}.webp"

  done

' sh {} +


Con esta orden recorrerá todas las subcarpetas, cogerá todas las imágenes que encuentre, las reducirás si es necesario y las grabará en format webp con el mismo nombre.

Eso es todo?

Pues no. Nos puede interesar eliminar las imágenes anteriores, por lo que ejecutaremos las siguiente orden:

find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -delete


Versión mejorada

He creado una versión mejorada (elimina carácteres raros y le pone el nombre de la carpeta donde está el fichero) en el artículo: Convertir JPG a Web recursivamente (versión mejorada)

Espero que os sea de utilidad


No hay comentarios:

Publicar un comentario