Pillow library ปรับขนาดรูปเป็นเปอร์เซ็นเพื่อนำไปใช้งานได้สะดวก

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

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

benzas00123
PHP Super Member
PHP Super Member
Posts: 244
Joined: 06/01/2020 9:58 am

Pillow library ปรับขนาดรูปเป็นเปอร์เซ็นเพื่อนำไปใช้งานได้สะดวก

Post by benzas00123 » 18/01/2020 5:25 pm

หลังจากที่ครั้งก่อนเราได้สอนถึงการ optimize ภาพเพื่อที่จะทำให้ ขนาดของ data มีขนาดเล็กลงกันไปแล้ว วันนี้เราจะมาสอนการใช้ Pillow เพื่อที่จะทำการปรับขนาดรูปภาพ โดยเราจะใช้การปรับขนาดแบบเป็น เปอร์เซ็นกัน

1. import Pillow

Code: Select all

from PIL import Image
2.สร้างฟังก์ชั่นขึ้นมาเพื่อที่จะสามารถรับตัวเลขเป็น เปอร์เซ็นที่เราต้องการจะปรับ และกำหนดตัวแปรใหม่โดยนำ เลขที่เรารับมานั้นมาหารด้วย 100

Code: Select all

def img_percentage(percen):
    p = percen / 100
3.ทำการเรียกรูปขึ้นมา แล้วทำการเช็คขนาดของรูปภาพ โดยครั้งนี้เราจะใช้รูปนามสกุล jpg นะครับ

Code: Select all

    im = Image.open ( "images/1.jpg" )
    w, h = im.size
ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (2.95 KiB) Viewed 60 times
นี่คือขนาดไฟล์ เดิม
4.หลังจากนั้นเราจะนำขนาดภาพ เดิมมา * กับ p ที่เราได้ทำการสร้างไว้ก่อนแล้ว และนำค่าที่ได้มาลบกับ ขนาดเดิมแล้วแทนที่ในตัวแปรเลย

Code: Select all

    w -= int ( w * p )
    h -= int ( h * p )
    size = (w, h)
5.หลังจากนั้นทำการ สร้างตัวแปร size เพื่อเก็บค่าขนาดใหม่ที่ได้
6.ทำการ ใช้ ฟังก์ชั่น thumbnail ในการ ปรับเปลี่ยนขนาดของตัวเดิม แล้วทำการเซฟรูปได้

Code: Select all

    im.thumbnail (size, Image.ANTIALIAS)  # จะเป็นคำสั่งการปรับ ขนาดแบบอัตโนมัติ ถ้าต้องการเลือกขนาดตามที่ต้องการต้องใช้ resize
    print(im)
    im.save ( "images/2.jpg" )
เรามาลองทดสอบกันเถอะ!
Python Knowledge-1.png
Python Knowledge-1.png (857.89 KiB) Viewed 60 times
ขนาดของรูปเดิม = 3660 x 2765

กำหนดค่า ปรับขนาดเปอเซ็นของรูปให้เล็กลง 10 เปอร์เซ็น

Code: Select all

if __name__ == '__main__':
    img_percentage(10)
ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (812.75 KiB) Viewed 60 times
ขนาดของรูปลดลงเหลือ 3294 x 2488

คราวนี้มาลองที่ 50 เปอร์เซ็น

ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (751.31 KiB) Viewed 60 times
ขนาดของรูปลดลงเหลือ 1830 x 1382

เป็นยังไงกันบ้างครับกับบทความนี้หวังว่าจะมีประโยชน์กับหลายๆคนไม่มากก็น้อยนะครับ

อ้างอิง
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
    Replies
    Views
    Last post

Return to “Python Knowledge”

Who is online

Users browsing this forum: No registered users and 17 guests