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

Post a reply

Smilies
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

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

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

by kritsadak » 26/12/2018 11:25 am

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

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

Code: Select all

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

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

Code: Select all

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

Code: Select all

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

Code: Select all

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 ทับรูปเดิมโดยใส่ชื่อเหมือนเดิมก็ได้)

Code: Select all

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

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

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

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

Code: Select all

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')

Top