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

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

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

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

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

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

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

1. import Pillow

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

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

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

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

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

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

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

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

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

    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 1003 times
ขนาดของรูปเดิม = 3660 x 2765

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

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

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

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

ผลลัพธ์
Python Knowledge-1.png
Python Knowledge-1.png (751.31 KiB) Viewed 1003 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
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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