แปลงไฟล์ภาพ JPG เป็น WebP ด้วย cwebp

หลังจากที่ได้ทำการดาวน์โหลดและติดตั้ง cwebp ไปแล้วในบันทึกก่อนหน้าของผม ทีนี้ก็เป็นขั้นตอนต่อไปสำหรับการรันสคริปท์เพื่อที่จะแปลงไฟล์ภาพจาก jpg ให้เป็น webp ในที่นี้ผมจะเขียนสคริปท์หอย หรือ shell script ขึ้นมาช่วยในการทำงาน มาดูขั้นตอนกันเลยจ้า

สำหรับคำสั่งที่ใช้ในการรันเพื่อแปลงไฟล์คือ
cwebp input.jpg -q 60 -o output.webp
-q 60 คือคุณภาพของไฟล์ เราอยากได้กี่เปอร์เซนต์ก็ใส่เข้าไป จากได้ชัดๆก็ใส่ตัวเลขเยอะๆ (สูงสุด 100%)
-o output.webp คือไฟล์ปลายทางที่เราต้องการ อยากจะเป็บเป็นชื่อไฟล์อะไรก็ตั้งชื่อไปได้เลย

โจทย์คือถ้าเรามีไฟล์เยอะๆ อยากจะแปลงไฟล์ที่ละเยอะๆ โดยที่เปลี่ยนแค่นามสกุลของไฟล์ ชื่อไฟล์ก็เอาชื่อเดิมนั้นแหละ เช่น
input = 1234.jpg
output = 1234.webp
เวลาที่เราเรียกใช้งานจะได้เปลี่ยนแค่นามสกุลของไฟล์ วิธีการคือใช้ shell มาช่วย วนลูปอ่านชื่อไฟล์ในโฟลเดอร์ที่เราต้องการ แล้วก็ส่งไปเข้าค่ำสั่งที่เราต้องการ เปลี่ยนแค่นามสกุลไฟล์ มาดูกันว่าต้องเขียนอย่างไรบ้าง
for file in *.jpg; do
cwebp "$file" -q 60 -o "$(basename "$file" .jpg).webp"
done

จากนั้นก็บันทึกเป็นชื่อไฟล์อะไรก็ได้ ในที่นี้ผมตั้งชื่อเป็น conv2webp.sh

Conv2Webp.sh
Conv2Webp.sh

ผมลองรันสคริปท์ที่เขียนขึ้นด้วยคำสั่ง
sh conv2webp.sh

sh conv2webp.sh
sh conv2webp.sh

ลองเช็คดูว่ามีไฟล์ output ออกมาตรงกับที่เราต้องการไหม

webp output
webp output