Найти - Пользователи
Полная версия: Обрезка прозрачной области
Начало » Python для новичков » Обрезка прозрачной области
1
lyncs
Подскажите, пожалуйста, достаточно быстрый и наименее ресурсозатратный способ обрезки всех столбцов и строк, состоящих из прозрачных пикселей, у png-файла.
lyncs
Может быть есть что-то вроде метода getbbox(), только вычисляющий не ненулевой прямоугольник, а непрозрачный прямоугольник? Всё-таки такое ощущение, что проверка попиксельно - не самое лучшее решение.
Shaman
Видится двумерный бисект скана строк/столбцов. Это если руками.
lyncs
тогда оставлю такой вариант решения данной задачи. может быть, кому-нибудь пригодится.
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")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB