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
dwebp
ze 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.