การ resize รูปภาพ ให้มีขนาดเล็กลง ด้วย Python ลดขนาดรูป

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: การ resize รูปภาพ ให้มีขนาดเล็กลง ด้วย Python ลดขนาดรูป

การ resize รูปภาพ ให้มีขนาดเล็กลง ด้วย Python ลดขนาดรูป

โดย kritsadak » 26/12/2018 11:59 am

บทความนี้จะสอนการปรับขนาดรูปภาพง่ายๆ ด้วย ภาษา python เพียงไม่กี่บรรทัด ก็จะช่วยให้ภาพเดิมที่มีขนาดใหญ่ ทำให้เล็กลงเหมาะสมกับการนำรูปภาพไปใช้ต่อ หรือจะเป็นการขยายรูปภาพจากเล็กให้มีขนาดใหญ่ขึ้นก็ทำได้เช่นกัน (แต่ถ้าภาพเล็กมากๆแล้วขยายขนาดขึ้นอาจจะทำให้ภาพไม่คมชัดได้)

ขั้นแรก จะต้องติดตั้ง Library ให้กับ Python ก่อน โดยใส่คำสั่งดังนี้

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

pip3 install Pillow
ตัวอย่างภาพที่จะทำการ resize รูปภาพ (ซึ่งมีขนาด 1920 X 1281) ตามรูป
รูปภาพ

เปิดโปรแกรมขึ้นมา จากนั้นให้เขียน code เพื่อ import library ที่ติดตั้งมา

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

import PIL
from PIL import Image
บรรทัดต่อมาจะเป็นการเลือกรูปภาพที่ต้องการ resize ชื่อว่า "waterfall.jpg"

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

imageresize = Image.open('waterfall.jpg')
ส่วนต่อมาจะเป็น code คำสั่งการ resize ตามขนาดที่ต้องการ

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

imageresize = imageresize.resize((400,250), PIL.Image.ANTIALIAS)
print('resize finish')
imageresize.save('resized image waterfall.png')
ซึ่งจะเลือกปรับให้ภาพมีขนาด 400 x 250 pixel
แล้วจะทำการ save เป็นรูปภาพใหม่เพิ่มขึ้นมาในชื่อ "resized image waterfall.png" (หรือจะ Save ทับรูปเดิมโดยใส่ชื่อเหมือนเดิมก็ได้)

ก่อน Run โปรแกรม
รูปภาพ
หลัง Run โปรแกรม (จะได้ไฟล์รูปภาพเพิ่มมา 1 ไฟล์ชื่อ "resized image waterfall.png")
รูปภาพ

ผลลัพท์ที่ได้ รูปภาพ จะเห็นได้ว่า pixel ก็จะมีขนาดเล็กลงตามที่ได้กำหนดไว้
resize-image-python.png
resize-image-python.png (299.45 KiB) Viewed 1234 times
Code ตัวอย่างทั้งหมด

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

import PIL
from PIL import Image
imageresize = Image.open('waterfall.jpg')
imageresize = imageresize.resize((400,250), PIL.Image.ANTIALIAS)
print('resize finish')
imageresize.save('resized image waterfall.png')
ศึกษา Python Framework เพิ่มเติมได้ที่นี่
https://www.mindphp.com/%E0%B8%9A%E0%B8 ... flask.html

ข้างบน