Come convertire immagini .webp in .png su Linux
Testato su Linux Ubuntu 20.04
Questa domanda è il primo risultato per la ricerca su Google di "linux convert .webp image to png". Pertanto, per chiunque inciampi qui e desideri solo quella semplice risposta, eccola qui:
# 1. Install the `webp` tool
sudo apt update
sudo apt install webp
# 2. Use it: convert in.webp to out.png
dwebp in.webp -o out.png
Fatto! Ora hai out.png
.
Riferimenti
- Ho saputo di
dwebp
dalla domanda stessa
Se ne hai molti da convertire/rinominare, ti consiglio di usare GNU Parallel e non solo convertirli più velocemente facendoli in parallelo, ma sfruttare anche la possibilità di modificare i nomi dei file.
Il comando che vuoi è:
parallel dwebp {} -o {.}.png ::: *.jpg
dove {.}
significa "il nome del file senza l'estensione originale" .
Se vuoi ricorrere anche alle sottodirectory, puoi usare:
find . -name "*.jpg" -print0 | parallel -0 dwebp {} -o {.}.png
Se desideri un indicatore di avanzamento o un "orario di arrivo stimato" , puoi aggiungere --progress
o --eta
dopo il parallel
comando.
Se vuoi vedere cosa GNU Parallel verrebbe eseguito, senza effettivamente eseguire nulla, aggiungere --dry-run
.
Raccomando GNU Parallel a te in questa epoca in cui le CPU stanno diventando "più grasse" (più core) piuttosto che più veloce.
L'ho fatto con un breve oneliner che non richiede parallel
da installare nel sistema
for x in `ls -1 *.jpg`; do dwebp {} -o ${x%.*}.png ::: $x; done
E questo funziona per la directory corrente
Proverei a modificare la soluzione ricorsiva di @mark-setchell in modo che assomigli a questa:
for x in `find . -name "*.jpg"`; do dwebp {} -o ${x%.*}.png ::: $x; done
L'${x%.*}
parte è quella che richiede una parola di spiegazione qui - dice a bash di prendere .
e tutto ciò che segue il punto del x
variabile. È incline a comportarsi male per i nomi con più punti poiché non ho controllato se regex qui è pigro o avido - la risposta può essere ulteriormente ottimizzata.