หน้า 1 จากทั้งหมด 1

วิธีการ Crop รูปภาพง่ายๆ ด้วยภาษา Python

โพสต์แล้ว: 26/12/2018 11:25 am
โดย kritsadak
บทความนี้จะสอนการ crop รูปภาพให้มีขนาดพอดีสำหรับการใช้งาน หากมีรูปภาพที่มีขนาดใหญ่ หรือมีพื้นที่รอบๆซึ่งเป็นส่วนที่ไม่ต้องการใช้งานก็สามารถตัดออกโดยใช้ ภาษา python ง่ายๆเพียงไม่กี่บรรทัดก็จะได้รูปภาพในส่วนที่ต้องการ

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

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

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

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

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

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

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

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

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

x, y, width , height = 100, 110, 400, 180
cropped = img.crop( ( x, y , width , height ) )
print ("Crop Finish")
อธิบายได้ว่า
x = หมายถึง แกน X (แนวนอน) เลือกจุดเริ่มต้นส่วนที่ต้องการ
เช่น ขนาดกว้างทั้งหมด 0-500 pixel ส่วนที่ต้องการ คือ 100 ทำให้ pixel 0-99 เป็นส่วนที่ต้องตัดออก
y = หมายถึง แกน Y (แนวตั้ง') เลือกจุดเริ่มต้นส่วนที่ต้องการ
เช่น ขนาดสูงทั้งหมด 0-280 pixel ส่วนที่ต้องการ คือ 110 ทำให้ pixel 0-109 เป็นส่วนที่ต้องตัดออก
width = หมายถึง ความกว้างสิ้นสุด ในส่วนที่ต้องการเลือก
เช่น ขนาดกว้างทั้งหมด 100-500 pixel ส่วนที่ต้องการ คือ 400 ทำให้ pixel 401-500 เป็นส่วนที่ต้องตัดออก
height = หมายถึง ความสูงสิ้นสุด ในส่วนที่ต้องการเลือก
เช่น ขนาดสูงทั้งหมด 110-280 pixel ส่วนที่ต้องการ คือ 180 ทำให้ pixel 181-280 เป็นส่วนที่ต้องตัดออก


ในส่วนสุดท้ายเป็นการ save รูปภาพในชื่อ "New image crop.png" (หรือจะ Save ทับรูปเดิมโดยใส่ชื่อเหมือนเดิมก็ได้)

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

cropped.save('New image crop.png')
ก่อน Run โปรแกรม
รูปภาพ

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

ผลลัพท์ที่ได้ รูปภาพ จะเห็นได้ว่า pixel ก็จะมีขนาดเล็กลง
รูปภาพ

Code ตัวอย่างทั้งหมด

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

import PIL
from PIL import Image

img = Image.open( 'image MINDPHP.png' )  # size: 184 x 184
x, y , width , height = 100, 110, 400, 180
#cropped = img.crop( ( x, y, x + width , y + height ) )
cropped = img.crop( ( x, y , width , height ) )
print ("Crop Finish")
cropped.save('New image crop.png')

Re: วิธีการ Crop รูปภาพง่ายๆ ด้วยภาษา Python

โพสต์แล้ว: 02/12/2023 9:55 am
โดย mindphp
เพิ่มเติม
viewtopic.php?p=350335#p350335