So konvertieren Sie .webp-Bilder in .png unter Linux
Getestet auf Linux Ubuntu 20.04
Diese Frage ist der Top-Treffer für die Google-Suche nach „linux convert .webp image to png“. Für alle, die hierher stolpern und nur diese einfache Antwort wollen, hier ist sie:
# 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
Fertig! Sie haben jetzt out.png
.
Referenzen
- Ich habe von
dwebp
erfahren aus der Frage selbst
Wenn Sie viele konvertieren/umbenennen müssen, würde ich Ihnen empfehlen, GNU Parallel zu verwenden und konvertieren Sie sie nicht nur schneller, indem Sie sie parallel ausführen, sondern nutzen Sie auch die Möglichkeit, Dateinamen zu ändern.
Der gewünschte Befehl lautet:
parallel dwebp {} -o {.}.png ::: *.jpg
wo die {.}
bedeutet "der Dateiname ohne die ursprüngliche Erweiterung" .
Wenn Sie auch in Unterverzeichnisse rekursieren möchten, können Sie Folgendes verwenden:
find . -name "*.jpg" -print0 | parallel -0 dwebp {} -o {.}.png
Wenn Sie eine Fortschrittsanzeige oder eine "voraussichtliche Ankunftszeit" wünschen , können Sie --progress
hinzufügen oder --eta
nach parallel
Befehl.
Wenn Sie sehen möchten, was GNU Parallel ausführen würde, ohne dass tatsächlich etwas ausgeführt wird, fügen Sie --dry-run
hinzu .
Ich empfehle GNU Parallel für Sie in dieser Zeit, in der CPUs "fetter" werden (mehr Kerne) statt schneller.
Ich habe es mit einem kurzen Einzeiler gemacht, der parallel
nicht erfordert im System installiert werden
for x in `ls -1 *.jpg`; do dwebp {} -o ${x%.*}.png ::: $x; done
Und das funktioniert für das aktuelle Verzeichnis
Ich würde versuchen, die rekursive @mark-setchell-Lösung so zu ändern, dass sie folgendermaßen aussieht:
for x in `find . -name "*.jpg"`; do dwebp {} -o ${x%.*}.png ::: $x; done
Die ${x%.*}
Teil ist derjenige, der hier ein Wort der Erklärung erfordert - er weist Bash an, .
zu nehmen und alles nach dem Punkt ab x
Variable. Es neigt dazu, sich bei Namen mit mehr Punkten falsch zu benehmen, da ich nicht überprüft habe, ob Regex hier faul oder gierig ist - die Antwort kann daher weiter abgestimmt werden.