2015-04-08 4 views
1

Я пытался получить это изображение image I want to crop, чтобы автоматически обрезать до минимального размера, удаляя прозрачные биты вокруг него. Я не могу просто обрезать это изображение самостоятельно, так как на изображении будет добавлено больше вещей, таких как image I want to crop as well.PNG не будет автоматически загружаться с помощью image.getbbox()

Я использую этот код:

from PIL import Image, ImageChops 

image=Image.open('headbase1.png') 
image.load() 

imageSize = image.size 
imageBox = image.getbbox() 
print(image.getbbox()) 
cropped=image.crop(imageBox) 
cropped.save('headbase_end.png') 

Это не обнажены прозрачность вокруг него, и ограничивающий прямоугольник это (0, 0, 45, 45), которые я не думаю, верно.

Спасибо, VOT.

Редактировать, это действительно работает: Automatically cropping an image with python/PIL с этим изображением, однако он отказывается работать для моего изображения. ,

+0

Метод numpy также не работает. –

ответ

3

getbbox не работает на формате PNG с альфа-каналами: image.mode == 'RGBA'

Сначала удалите альфа-канал, а затем получить ограничивающий прямоугольник. image.convert('RGB').getbbox()