ฉันต้องการครอบตัดรูปภาพโดยลบ 30 แถวแรกและ 30 แถวสุดท้ายออกจากรูปภาพที่กำหนด ฉันได้ค้นหา แต่ไม่ได้รับคำตอบที่แน่นอน ใครมีคำแนะนำบ้าง?
ฉันต้องการครอบตัดรูปภาพโดยลบ 30 แถวแรกและ 30 แถวสุดท้ายออกจากรูปภาพที่กำหนด ฉันได้ค้นหา แต่ไม่ได้รับคำตอบที่แน่นอน ใครมีคำแนะนำบ้าง?
คำตอบ:
มีcrop()
วิธีการ:
w, h = yourImage.size
yourImage.crop((0, 30, w, h-30)).save(...)
Parameters: box – The crop rectangle, as a (left, upper, right, lower)-tuple.
คุณต้องนำเข้า PIL (หมอน) สำหรับสิ่งนี้ สมมติว่าคุณมีรูปภาพขนาด 1200, 1600 เราจะครอบตัดรูปภาพจาก 400, 400 ถึง 800, 800
from PIL import Image
img = Image.open("ImageName.jpg")
area = (400, 400, 800, 800)
cropped_img = img.crop(area)
cropped_img.show()
(ซ้ายบนขวาล่าง) หมายถึงสองจุด
ด้วยภาพ 800x600 พิกเซลจุดบนซ้ายของภาพคือ (0, 0) จุดล่างขวาคือ (800, 600)
ดังนั้นสำหรับการตัดครึ่งภาพ:
from PIL import Image
img = Image.open("ImageName.jpg")
img_left_area = (0, 0, 400, 600)
img_right_area = (400, 0, 800, 600)
img_left = img.crop(img_left_area)
img_right = img.crop(img_right_area)
img_left.show()
img_right.show()
Python Imaging Library ใช้ระบบพิกัดพิกเซลคาร์ทีเซียนโดยมี (0,0) อยู่ที่มุมซ้ายบน โปรดทราบว่าพิกัดหมายถึงมุมพิกเซลโดยนัย จุดศูนย์กลางของพิกเซลที่ระบุว่า (0, 0) อยู่ที่ (0.5, 0.5)
โดยปกติพิกัดจะถูกส่งไปยังไลบรารีเป็น 2-tuples (x, y) รูปสี่เหลี่ยมจะแสดงเป็น 4 tuples โดยให้มุมซ้ายบนก่อน ตัวอย่างเช่นสี่เหลี่ยมผืนผ้าที่ครอบคลุมรูปภาพ 800x600 พิกเซลทั้งหมดจะเขียนเป็น (0, 0, 800, 600)