Mare quin títol: com convertir recursivament unes imatges JPG a Webp que tenim dins de subcarpetes.

Que si, que la majoria de vosaltres teniu el Güindous, i el xitxarel·lo que us escriu, està obsessionat a fer articles de Linux. Ja son molts anys que treballo amb Debian, i d’aquí no em traureu.
Tasca a realitzar
La tasca a realitzar en un dels trasllats de pàgina web que he hagut de fer aquesta setmana:
- Tinc una carpeta, i dins moltes subcarpetes (un arbre de carpetes)
- Dins de cadascuna de les carpetes tinc diferents imatges en diferents formats (jpg, jpeg i png)
I ara concretem què s’ha de fer:
- De forma senzilla convertir totes aquestes imatges en format webp i reduir-les en mida si superen 950px d’ample o 750px d’altura.
Què necessitem
Necessitarem un programari que treballi amb imatges des de la terminal, o el que és el mateix: imagemagick. És un programari que disposa d’interfície, per`permet treballar-hi des del terminal (important per a la tasca que volem fer).
D’altra banda, necessitarem un mínim de coneixements per a treballar a la terminal de Linux.
Com ho fem
Fàcil.
- Marxem a la carpeta arrel on tinguem totes les subcarpetes a treballar amb l’explorador de fitxers (dolphin, konqueror…)
- Premem el botó dret sobre el navegador i escollim l’opció d’Obrir un terminal
- S’obrirà el terminal situant-se ja a la carpeta que necessitem
- Executem la següent ordre:
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 {} +
Què fa aquesta ordre? Doncs recórrer totes les subcarpetes, agafar totes les imatges que trobi, les reduirà si cal (màxim de 950px d’ample i 750px d’alçada) i les gravarà en format webp amb el mateix nom.
Bé, feu copiar-enganxar al vostre terminal i veureu… (feu còpia de seguretat de les vostres imatges sempre !!!)
Això és tot?
Doncs no. Ens pot interessar eliminar les imatges anteriors (jpg, jpeg o png), per la qual cosa executarem la següent ordre:
find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) -delete
Espero que us hagi sigut d’utilitat i si no, que veieu la potència que tenim els que treballem amb Linux.
Observació: la imatge de l’article està creada amb Gemini especificant que el text ha d’estar en català. Prou bé.
