Pillow library ปรับขนาดรูปเป็นเปอร์เซ็นเพื่อนำไปใช้งานได้สะดวก
Posted: 18/01/2020 5:25 pm
หลังจากที่ครั้งก่อนเราได้สอนถึงการ optimize ภาพเพื่อที่จะทำให้ ขนาดของ data มีขนาดเล็กลงกันไปแล้ว วันนี้เราจะมาสอนการใช้ Pillow เพื่อที่จะทำการปรับขนาดรูปภาพ โดยเราจะใช้การปรับขนาดแบบเป็น เปอร์เซ็นกัน
1. import Pillow
2.สร้างฟังก์ชั่นขึ้นมาเพื่อที่จะสามารถรับตัวเลขเป็น เปอร์เซ็นที่เราต้องการจะปรับ และกำหนดตัวแปรใหม่โดยนำ เลขที่เรารับมานั้นมาหารด้วย 100
3.ทำการเรียกรูปขึ้นมา แล้วทำการเช็คขนาดของรูปภาพ โดยครั้งนี้เราจะใช้รูปนามสกุล jpg นะครับ
ผลลัพธ์
นี่คือขนาดไฟล์ เดิม
4.หลังจากนั้นเราจะนำขนาดภาพ เดิมมา * กับ p ที่เราได้ทำการสร้างไว้ก่อนแล้ว และนำค่าที่ได้มาลบกับ ขนาดเดิมแล้วแทนที่ในตัวแปรเลย
5.หลังจากนั้นทำการ สร้างตัวแปร size เพื่อเก็บค่าขนาดใหม่ที่ได้
6.ทำการ ใช้ ฟังก์ชั่น thumbnail ในการ ปรับเปลี่ยนขนาดของตัวเดิม แล้วทำการเซฟรูปได้
เรามาลองทดสอบกันเถอะ!
ขนาดของรูปเดิม = 3660 x 2765
กำหนดค่า ปรับขนาดเปอเซ็นของรูปให้เล็กลง 10 เปอร์เซ็น
ผลลัพธ์
ขนาดของรูปลดลงเหลือ 3294 x 2488
คราวนี้มาลองที่ 50 เปอร์เซ็น
ผลลัพธ์ ขนาดของรูปลดลงเหลือ 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
1. import Pillow
Code: Select all
from PIL import Image
Code: Select all
def img_percentage(percen):
p = percen / 100
Code: Select all
im = Image.open ( "images/1.jpg" )
w, h = im.size
4.หลังจากนั้นเราจะนำขนาดภาพ เดิมมา * กับ p ที่เราได้ทำการสร้างไว้ก่อนแล้ว และนำค่าที่ได้มาลบกับ ขนาดเดิมแล้วแทนที่ในตัวแปรเลย
Code: Select all
w -= int ( w * p )
h -= int ( h * p )
size = (w, h)
6.ทำการ ใช้ ฟังก์ชั่น thumbnail ในการ ปรับเปลี่ยนขนาดของตัวเดิม แล้วทำการเซฟรูปได้
Code: Select all
im.thumbnail (size, Image.ANTIALIAS) # จะเป็นคำสั่งการปรับ ขนาดแบบอัตโนมัติ ถ้าต้องการเลือกขนาดตามที่ต้องการต้องใช้ resize
print(im)
im.save ( "images/2.jpg" )
กำหนดค่า ปรับขนาดเปอเซ็นของรูปให้เล็กลง 10 เปอร์เซ็น
Code: Select all
if __name__ == '__main__':
img_percentage(10)
คราวนี้มาลองที่ 50 เปอร์เซ็น
ผลลัพธ์ ขนาดของรูปลดลงเหลือ 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