Jak převést obrázky .webp na .png v systému Linux
Testováno na Linuxu Ubuntu 20.04
Tato otázka je nejčastějším hitem při vyhledávání Google „linux convert .webp image to png“. Proto pro každého, kdo zde klopýtá a chce jen jednoduchou odpověď, zde je:
# 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
Hotovo! Nyní máte out.png .
Odkazy
- Dozvěděl jsem se o
dwebpze samotné otázky
Pokud jich máte hodně ke konverzi/přejmenování, doporučil bych vám použít GNU Parallel a nejen že je rychleji převedete tím, že je uděláte paralelně, ale také využijete možnost upravovat názvy souborů.
Požadovaný příkaz je:
parallel dwebp {} -o {.}.png ::: *.jpg
kde {.} znamená "název souboru bez původní přípony" .
Pokud chcete rekurzovat také do podadresářů, můžete použít:
find . -name "*.jpg" -print0 | parallel -0 dwebp {} -o {.}.png
Pokud chcete ukazatel průběhu nebo „odhadovaný čas příjezdu“ , můžete přidat --progress nebo --eta za parallel příkaz.
Pokud chcete vidět, co GNU Parallel by běžel, aniž by ve skutečnosti něco spouštěl, přidal --dry-run .
Chválím GNU Parallel vám v tomto věku, kdy jsou CPU "tučnější" (více jader) spíše než rychlejší.
Udělal jsem to s krátkou linkou, která nevyžaduje parallel k instalaci do systému
for x in `ls -1 *.jpg`; do dwebp {} -o ${x%.*}.png ::: $x; done
A to funguje pro aktuální adresář
Pokusil bych se upravit rekurzivní řešení @mark-setchell tak, aby vypadalo takto:
for x in `find . -name "*.jpg"`; do dwebp {} -o ${x%.*}.png ::: $x; done
${x%.*} část je ta, která zde vyžaduje slovo vysvětlení - říká bash, aby vzal . a vše za tečkou od x proměnná. U jmen s více tečkami je náchylná k nesprávnému chování, protože jsem nezkontroloval, zda je zde regex líný nebo chamtivý - odpověď lze proto dále vyladit.