Pillow library Optimize รูปภาพเพื่อให้มีขนาดของข้อมูลที่เล็กลง

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

benzas00123
PHP Super Member
PHP Super Member
โพสต์: 244
ลงทะเบียนเมื่อ: 06/01/2020 9:58 am

Pillow library Optimize รูปภาพเพื่อให้มีขนาดของข้อมูลที่เล็กลง

โพสต์ที่ยังไม่ได้อ่าน โดย benzas00123 »

หลังจากที่ได้ทำความรู้จักกับเจ้าตัว Pillow กันไปแล้วในบทความก่อนหน้า วันนี้เราจะมานำเสนอฟังก์ชั่นที่น่าสนใจไม่แพ้กันอีกฟังก์ชั่นนึงของเจ้าตัว Pillow ด้วยนั้นก็คือ การ Optimize เพื่อปรับขนาดรูปภาพนั่นเอง นอกจากเจ้า pillow จะเป็น Module ที่สามารถปรับขนาดรูปภาพ เปลี่ยนนามสกุล เปลี่ยนโหมดรูปภาพได้แล้วนั้น อีกฟังก์ชั่นที่น่าสนใจในตัว เจ้า Pillow อีกอย่างนึงคือ การ Optimize รูปภาพให้มีขนาดที่เล็กลงด้วย โดยสำหรับเจ้าฟังก์ชั่นตัวนี้ก็เขียนได้ง่ายๆ โดยเริ่มจาก

1. import pillow เข้ามา

โค้ด: เลือกทั้งหมด

from PIL import Image
2. ทำการเลือกรูปภาพมาเพื่อที่จะทำการปรับขนาดของรูปภาพ โดยเราจะใช้คำสั่ง quality นั่นเอง

โค้ด: เลือกทั้งหมด

imgtest = Image.open('images/1.jpg')
imgtest.save('images/2.jpg', quality = 90)
โดยยิ่งเราปรับตัวเลขน้อยลงเท่าไหร่ ขนาดของรูปก็จะเล็กลงเท่านั้น เรามาลองดูกันเถอะ!

ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (877.75 KiB) Viewed 1120 times
โดยเจ้ารูปแรกนั้นคือรูปก่อนที่เราจะทำการปรับลด quality จะมี data อยู่ที่ 7.5 MB

Python Knowledge-1.png
Python Knowledge-1.png (852.71 KiB) Viewed 1120 times
แต่รูปที่ 2 นี้ จะมี data อยู่เพียง 2.4 MB เท่านั้น โดยที่ ขนาดของรูปยังคงเดิมที่ 3660 x 2765 pixels

คราวนี้เรามาลองปรับให้มีค่า quality น้อยลงกว่าเดิมกันเถอะ!

โค้ด: เลือกทั้งหมด

imgtest = Image.open('images/1.jpg')
imgtest.save('images/3.jpg', quality = 40)
โดยรอบนี้จะปรับให้มีค่า quality อยู่ที่ 40 ส่วนผลลัพธ์ที่ได้นั้น

Python Knowledge-1.png
Python Knowledge-1.png (763.33 KiB) Viewed 1120 times
จะมี data อยู่เพียง 608.5 kb เท่านั้นซึ่งถือได้ว่า ลดลงไปได้เยอะมากๆ ซึ่งประโยชน์ของมันก็จะมีหลากหลายเลยไม่ว่าจะใช้ เพื่อลดขนาดของ store ที่จะทำการเก็บไฟล์ image เหล่านี้ลง หรืออื่นๆอีกมากมาย


อ้างอิง
https://pillow.readthedocs.io/en/stable/reference/index.html
https://note.nkmk.me/en/python-pillow-basic/
https://www.pythonforbeginners.com/gui/how-to-use-pillow
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 62