2012-04-02 68 views
61

Tôi muốn cắt hình ảnh theo cách này bằng cách xóa 30 hàng đầu tiên và 30 hàng cuối cùng khỏi hình ảnh nhất định. Tôi đã tìm kiếm nhưng không nhận được giải pháp chính xác. Có ai đó có một số gợi ý?Cắt hình ảnh bằng PIL trong python

Trả lời

111

Có một phương pháp crop():

w, h = yourImage.size 
yourImage.crop((0, 30, w, h-30)).save(...) 
+1

Vâng, tôi biết rằng im.crop (box) được sử dụng để cắt xén hình ảnh. Nhưng tôi muốn cắt chỉ phần trên và dưới của hình ảnh không phải trái và phải, mặc dù hộp() mất 4 tuple nhưng tôi không nhận được làm thế nào để cắt phần trên và dưới của hình ảnh. –

+2

@TajKoyal: Chính xác những gì ninjagecko cho bạn thấy là cách bạn cắt bỏ đầu và cuối. Ông đang xác định một hình chữ nhật cho hình ảnh mới. Bạn có thể thấy rằng anh ta tắt 30 pixel từ giá trị y ở các điểm trên cùng và dưới cùng. Nếu bạn bù đắp các giá trị x theo bất kỳ cách nào, điều đó sẽ ảnh hưởng đến các cạnh bên trái và bên phải. – jdi

+1

Cảm ơn các bạn đã giúp tôi. –

7

Bạn cần phải nhập khẩu PIL (gối) cho việc này. Giả sử bạn có một hình ảnh kích thước 1200, 1600. Chúng tôi sẽ cắt hình ảnh từ 400, 400 đến 800, 800

from PIL import Image 
img = Image.open("ImageName.jpg") 
area = (400, 400, 800, 800) 
cropped_img = img.crop(area) 
cropped_img.show() 
Các vấn đề liên quan