หลังจากที่ครั้งก่อนเราได้สอนถึงการ
optimize ภาพเพื่อที่จะทำให้ ขนาดของ data มีขนาดเล็กลงกันไปแล้ว วันนี้เราจะมาสอนการใช้ Pillow เพื่อที่จะทำการปรับขนาดรูปภาพ โดยเราจะใช้การปรับขนาดแบบเป็น เปอร์เซ็นกัน
1.
import Pillow
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 (2.95 KiB) Viewed 449 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 (857.89 KiB) Viewed 449 times
ขนาดของรูปเดิม = 3660 x 2765
กำหนดค่า ปรับขนาดเปอเซ็นของรูปให้เล็กลง 10 เปอร์เซ็น
Code: Select all
if __name__ == '__main__':
img_percentage(10)
ผลลัพธ์

- Python Knowledge-1.png (812.75 KiB) Viewed 449 times
ขนาดของรูปลดลงเหลือ 3294 x 2488
คราวนี้มาลองที่ 50 เปอร์เซ็น
ผลลัพธ์

- Python Knowledge-1.png (751.31 KiB) Viewed 449 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
หลังจากที่ครั้งก่อนเราได้สอนถึงการ [url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/3956-optimize-%E0%B8%AD%E0%B8%AD%E0%B8%9F%E0%B8%95%E0%B8%B4%E0%B9%84%E0%B8%A1%E0%B8%8B%E0%B9%8C-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html]optimize[/url] ภาพเพื่อที่จะทำให้ ขนาดของ data มีขนาดเล็กลงกันไปแล้ว วันนี้เราจะมาสอนการใช้ Pillow เพื่อที่จะทำการปรับขนาดรูปภาพ โดยเราจะใช้การปรับขนาดแบบเป็น เปอร์เซ็นกัน
1. [url=https://mindphp.com/component/mdfiles/documents/168-%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89-form-import-%E0%B9%83%E0%B8%99-python.html?bb_limitstart=17040]import[/url] Pillow
[code]from PIL import Image[/code]
2.สร้างฟังก์ชั่นขึ้นมาเพื่อที่จะสามารถรับตัวเลขเป็น เปอร์เซ็นที่เราต้องการจะปรับ และกำหนดตัวแปรใหม่โดยนำ เลขที่เรารับมานั้นมาหารด้วย 100
[code]def img_percentage(percen):
p = percen / 100[/code]
3.ทำการเรียกรูปขึ้นมา แล้วทำการเช็คขนาดของรูปภาพ โดยครั้งนี้เราจะใช้รูปนามสกุล [url=https://mindphp.com/developer/67-%E0%B8%A3%E0%B8%B9%E0%B8%9B%E0%B8%A0%E0%B8%B2%E0%B8%9E/1954-jpg-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html]jpg[/url] นะครับ
[code] im = Image.open ( "images/1.jpg" )
w, h = im.size[/code]
ผลลัพธ์
[attachment=3]Python Knowledge-1.png[/attachment]
นี่คือขนาดไฟล์ เดิม
4.หลังจากนั้นเราจะนำขนาดภาพ เดิมมา * กับ p ที่เราได้ทำการสร้างไว้ก่อนแล้ว และนำค่าที่ได้มาลบกับ ขนาดเดิมแล้วแทนที่ในตัวแปรเลย
[code] w -= int ( w * p )
h -= int ( h * p )
size = (w, h)[/code]
5.หลังจากนั้นทำการ สร้างตัวแปร size เพื่อเก็บค่าขนาดใหม่ที่ได้
6.ทำการ ใช้ ฟังก์ชั่น thumbnail ในการ ปรับเปลี่ยนขนาดของตัวเดิม แล้วทำการเซฟรูปได้
[code] im.thumbnail (size, Image.ANTIALIAS) # จะเป็นคำสั่งการปรับ ขนาดแบบอัตโนมัติ ถ้าต้องการเลือกขนาดตามที่ต้องการต้องใช้ resize
print(im)
im.save ( "images/2.jpg" )[/code]
เรามาลองทดสอบกันเถอะ!
[attachment=2]Python Knowledge-1.png[/attachment]
ขนาดของรูปเดิม = 3660 x 2765
กำหนดค่า ปรับขนาดเปอเซ็นของรูปให้เล็กลง 10 เปอร์เซ็น
[code]if __name__ == '__main__':
img_percentage(10)[/code]
ผลลัพธ์
[attachment=1]Python Knowledge-1.png[/attachment]
ขนาดของรูปลดลงเหลือ 3294 x 2488
คราวนี้มาลองที่ 50 เปอร์เซ็น
ผลลัพธ์
[attachment=0]Python Knowledge-1.png[/attachment]
ขนาดของรูปลดลงเหลือ 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