Có giải pháp đơn giản nào để cắt khoảng trắng trên hình ảnh trong PIL không?Cắt khoảng trống bằng cách sử dụng PIL
ImageMagick có hỗ trợ dễ dàng cho nó theo cách sau:
convert test.jpeg -fuzz 7% -trim test_trimmed.jpeg
Tôi tìm thấy một giải pháp cho PIL:
from PIL import Image, ImageChops
def trim(im, border):
bg = Image.new(im.mode, im.size, border)
diff = ImageChops.difference(im, bg)
bbox = diff.getbbox()
if bbox:
return im.crop(bbox)
Nhưng giải pháp này có nhược điểm:
- tôi cần phải xác định
border
màu sắc, nó không phải là một việc lớn đối với tôi, hình ảnh của tôi có nền trắng - Và bất lợi nhất, giải pháp PIL này không hỗ trợ khóa
-fuzz
của ImageMagick. Để thêm một số cắt xén mờ. vì tôi có thể có một số đồ tạo tác nén jpeg và các bóng lớn không cần thiết.
Có thể PIL có một số chức năng được tích hợp sẵn cho nó? Hoặc có một số giải pháp nhanh?
tôi biết mã là giống hệt nhau ở đó, nhưng nó cũng có thể được tìm thấy ở đây - https://gist.github.com/mattjmorrison/932345 –