Move _iter_lines() method from SubImage to Image.

This commit is contained in:
Andrey Golovizin 2014-08-10 21:40:10 +02:00
parent 0ae6f19e60
commit 2450f7f002

View file

@ -151,6 +151,23 @@ class Image(object):
bottom_margin = _get_margin_height(reversed(self.bitmap))
return self[top_margin:self.height - bottom_margin, :]
def _iter_lines(self, min_space, T=False):
line_start = None
prev_line_end = 0
for i, row in enumerate(self.bitmap):
if _is_nonblank(row):
if line_start is None:
line_start = i
height = line_start - prev_line_end
if height >= min_space:
yield self[prev_line_end:line_start]
else:
if line_start is not None:
yield self[line_start:i,:]
line_start = None
prev_line_end = i
class SubImage(Image):
def __init__(self, parent, y1, y2, x1, x2):
@ -171,20 +188,3 @@ class SubImage(Image):
@property
def T(self):
return type(self)(self.parent.T, self.x1, self.x2, self.y1, self.y2)
def _iter_lines(self, min_space, T=False):
line_start = None
prev_line_end = 0
for i, row in enumerate(self.bitmap):
if _is_nonblank(row):
if line_start is None:
line_start = i
height = line_start - prev_line_end
if height >= min_space:
yield self[prev_line_end:line_start]
else:
if line_start is not None:
yield self[line_start:i,:]
line_start = None
prev_line_end = i