lyncs
Июль 20, 2015 12:30:10
Подскажите, пожалуйста, достаточно быстрый и наименее ресурсозатратный способ обрезки всех столбцов и строк, состоящих из прозрачных пикселей, у png-файла.
lyncs
Июль 20, 2015 17:17:29
Может быть есть что-то вроде метода getbbox(), только вычисляющий не ненулевой прямоугольник, а непрозрачный прямоугольник? Всё-таки такое ощущение, что проверка попиксельно - не самое лучшее решение.
Shaman
Июль 20, 2015 20:14:57
Видится двумерный бисект скана строк/столбцов. Это если руками.
lyncs
Июль 21, 2015 17:28:33
тогда оставлю такой вариант решения данной задачи. может быть, кому-нибудь пригодится.
from PIL import Image
im = Image.open("picture.png")
box = [0,0,im.size[0],im.size[1]]
yy = []
for x in xrange(im.size[0]):
for y in xrange(im.size[1]):
p = im.getpixel((x,y))
if p[3] is not 0:
yy.append(y)
if box[0] is 0:
box[0] = x
else:
box[2] = x
break
box[1] = min(yy)
im = im.crop(box)
im.save("result.png")