Cara mengonversi gambar .webp ke .png di Linux
Diuji pada Linux Ubuntu 20.04
Pertanyaan ini adalah hit teratas untuk pencarian Google "linux convert .webp image to png". Oleh karena itu, bagi siapa pun yang tersandung di sini dan hanya menginginkan jawaban sederhana itu, ini dia:
# 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
Selesai! Anda sekarang memiliki out.png
.
Referensi
- Saya belajar tentang
dwebp
dari pertanyaan itu sendiri
Jika Anda memiliki banyak konversi/ganti nama, saya sarankan Anda menggunakan GNU Paralel dan tidak hanya mengonversinya lebih cepat dengan melakukannya secara paralel, tetapi juga memanfaatkan kemampuan untuk mengubah nama file.
Perintah yang Anda inginkan adalah:
parallel dwebp {} -o {.}.png ::: *.jpg
di mana {.}
berarti "nama file tanpa ekstensi asli" .
Jika Anda juga ingin mengulang ke subdirektori, Anda dapat menggunakan:
find . -name "*.jpg" -print0 | parallel -0 dwebp {} -o {.}.png
Jika Anda menginginkan pengukur kemajuan, atau "perkiraan waktu kedatangan" , Anda dapat menambahkan --progress
atau --eta
setelah parallel
perintah.
Jika Anda ingin melihat apa GNU Paralel akan berjalan, tanpa benar-benar menjalankan apapun, tambahkan --dry-run
.
Saya merekomendasikan GNU Paralel untuk Anda di zaman ini di mana CPU semakin "lebih gemuk" (lebih banyak inti) daripada lebih cepat.
Saya melakukannya dengan oneliner pendek yang tidak memerlukan parallel
untuk dipasang di sistem
for x in `ls -1 *.jpg`; do dwebp {} -o ${x%.*}.png ::: $x; done
Dan ini berfungsi untuk direktori saat ini
Saya akan mencoba mengubah solusi rekursif @mark-setcell sehingga akan terlihat seperti ini:
for x in `find . -name "*.jpg"`; do dwebp {} -o ${x%.*}.png ::: $x; done
${x%.*}
bagian yang membutuhkan penjelasan di sini - ini memberitahu bash untuk mengambil .
dan semuanya setelah titik dari x
variabel. Ini cenderung berperilaku buruk untuk nama dengan lebih banyak titik karena saya tidak memeriksa apakah regex di sini malas atau serakah - oleh karena itu jawabannya dapat disetel lebih lanjut.