PNG не будет автоматически обрезаться с помощью image.getbbox()

Я пытался сделать так, чтобы это image I хочу обрезатьизображение автоматически обрезалось до минимально возможного размера, удаляя прозрачные биты вокруг него. Я не могу просто обрезать это изображение вручную, так как на изображение будет добавлено больше вещей, подобных этому image, которое я хочу  обрезать тоже.

Я использовал этот код:

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), что я не думаю, что это правильно.

Спасибо, ВОТ.

Отредактируйте, это работает: Автоматическое кадрирование изображения с помощью python/PIL с этим изображением, однако оно отказывается работать для моего изображения. .


person VOT Productions    schedule 08.04.2015    source источник
comment
Метод numpy тоже не работает.   -  person VOT Productions    schedule 08.04.2015


Ответы (1)


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

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

person Dean Chen    schedule 16.07.2015