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

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

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

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

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

โพสต์โดย kritsadak » 26/12/2018 11:25 am

บทความนี้จะสอนการ 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')

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 10 และ บุคคลทั่วไป 0 ท่าน