PNG tidak akan dipotong otomatis menggunakan image.getbbox()

Saya telah mencoba membuat gambargambar yang ingin saya potongini dipotong secara otomatis ke ukuran sekecil mungkin, menghapus bagian transparan di sekitarnya. Saya tidak bisa memotong gambar ini sendiri secara manual, karena lebih banyak hal akan ditambahkan pada gambar seperti ini gambar Saya ingin  potong juga.

Saya telah menggunakan kode ini:

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')

Itu tidak menghilangkan transparansi di sekitarnya, dan kotak pembatasnya adalah ini (0, 0, 45, 45), yang menurut saya tidak benar.

Terima kasih, VOT.

Sunting, ini berhasil: Memotong gambar secara otomatis dengan python/PIL dengan gambar itu, namun ia menolak bekerja untuk gambar saya. .


person VOT Productions    schedule 08.04.2015    source sumber
comment
Metode numpy sepertinya juga tidak berhasil.   -  person VOT Productions    schedule 08.04.2015


Jawaban (1)


getbbox tidak berfungsi pada PNG dengan saluran alfa: image.mode == 'RGBA'

Pertama-tama hapus saluran alfa dan kemudian dapatkan kotak pembatas. image.convert('RGB').getbbox()

person Dean Chen    schedule 16.07.2015