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

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

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

kritsadak
PHP Full Member
PHP Full Member
โพสต์: 30
ลงทะเบียนเมื่อ: 24/12/2018 10:18 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย 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')
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41232
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

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

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

เพิ่มเติม
viewtopic.php?p=350335#p350335
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

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

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