Il formato WebP è raccomandato tra le buone pratiche per l'ottimizzazione della performance dei siti web in virtù della sua capacità di ridurre notevolmente il peso delle immagini salvate in altri formati. In questo articolo, vedremo come creare uno script Bash per effettuare la conversione delle immagini esistenti nel formato WebP.
Prima di implementare il nostro script, è necessario installare il package webp
sulla macchina su cui vogliamo effettuare l'operazione di conversione. Questo package è disponibile per tutti i package manager più popolari e usati.
Una volta fatto questo, avremo a disposizione il comando cwebp
che effettuerà la conversione con la seguente sintassi:
cwebp immagine.jpg -o immagine.webp
Il nostro script dovrà fare in modo che, se l'immagine convertita esiste, non venga convertita nuovamente e che l'immagine originale venga rimossa.
#!/bin/bash
# Directory base passata come argomento
START_DIR=$1
# Verifica dell'esistenza della directory
if [ ! -d "$START_DIR" ]; then
exit 1
fi
# Trova tutte le immagini PNG e JPEG/JPG e le converte in WebP
find "$START_DIR" -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" \) | while read IMAGE; do
# Crea il nome del file WebP
WEBP_IMAGE="${IMAGE%.*}.webp"
# Controlla se il file WebP esiste già per evitare doppie conversioni
if [ ! -f "$WEBP_IMAGE" ]; then
echo "$IMAGE -> $WEBP_IMAGE"
cwebp "$IMAGE" -o "$WEBP_IMAGE" &> /dev/null
if [ -f "$WEBP_IMAGE" ]; then
# Rimuove il file originale
rm "$IMAGE"
echo "Rimossa $IMAGE"
fi
else
echo "Il file $WEBP_IMAGE esiste già, salto la conversione."
fi
done
echo "Conversione completata!"
Dopo aver reso eseguibile lo script Bash, possiamo usarlo come segue:
./convert-webp.sh public_html/uploads
Conclusione
Convertire le immagini di un sito web nel formato WebP è un modo per ridurre notevolmente il peso delle stesse e migliorare così la performance e l'esperienza utente.