Posted on Nov 17, 2021
Webp เป็นมาตรฐานไฟล์ภาพของ Google ที่มีการบีบอัดไฟล์ภาพ ช่วยลดขนาดไฟล์ได้มาก โดยที่คุณภาพไฟล์ภาพยังคมชัด การทำเว็บไซต์ ขนาดของไฟล์ภาพก็เป็นสิ่งที่สำคัญที่จะทำให้เว็บดาวน์โหลดได้เร็วขึ้นเป็นอย่างมาก และนี้จะช่วยให้เราสามารถแปลงภาพได้รวดเร็วขึ้น โดยที่ไม่ต้องเปิดเว็บเพื่อ Convert to webp เลย
Webp นั้นยังช่วยเรื่องความเร็วของเว็บไซต์ บีบอัดรูปภาพทำให้รูปภาพมีความชัด โดยที่จะสูญเสียคุณภาพเพียงเล็กน้อย โดยในโค้ดสามารถที่เป็น Quality ได้อีกด้วย โดยจะมีค่าอยู่ที่ 1-10 โดยที่ 10 จะได้คุณภาพที่สูงที่สุด แต่ขนาดไฟล์ภาพจะมากกว่าค่าอื่น แต่ก็น้อยกว่าไฟล์ภาพนามสกุลอื่นๆอย่าง jpg, jpeg, png
มาเริ่มกันเลย โดยแนวคิดของเราคือ สร้างโฟล์เดอร์ขึ้นมาก่อน webp_ตามด้วยวันที่ ตามบรรทัดที่ 5-7 เพื่อที่จะ Save ไฟล์ที่แปลงเสร็จแล้ว หลังจากนั้นเราจะ list ไฟล์ทั้งหมด (os.listdir(".")) ในโฟล์เดอร์ที่ไฟล์ rename.py อยู่ หลังจากนั้นตรวจสอบว่า ใช่ไฟล์ที่ลงท้ายด้วย jpg, png, jpeg รึป่าว (.endswith("jpg")) ถ้าใช่ เราจะทำการแปลงเป็น RGB (image.convert('RGB')) หากไม่แปลงจะทำให้รูปภาพที่มีส่วน transprent หรือส่วนที่โปร่งใส เป็นสีขาว หลังจากนั้น Save เป็นสกุล webp (image.save(ที่อยู่ไฟล์,นามสกุลไฟล์)) หากเราต้องการปรับ Quality ต้องใช้ (image.save(ที่อยู่ไฟล์,นามสกุลไฟล์,optimize=True,Quality={1-10}))
ชื่อไฟล์ rename.py
import os
from PIL import Image
import PIL
from datetime import datetime
now = datetime.now()
current_time = now.strftime("%d-%m-%Y-%H-%M-%S")
os.mkdir('webp_'+current_time)
for filename in os.listdir("."):
if filename.endswith("jpg") or filename.endswith("png") or filename.endswith("jpeg"):
image = Image.open(filename)
image = image.convert('RGB')
image.save('webp_'+current_time+'/'+filename.split(".")[0]+'.webp', 'webp', optimize = True, quality = 9)
tospichai
Hey! 👋 I'm a Back-End Developer.
I graduated with a bachelor's degree in Finance from Kasetsart university.
I created a blog to share my knowledge with everyone.
In the future I will let everyone share their knowledge on my blog.
Thailand, Bangkok
workBack-End Web Developer
joinedMay 22, 2021