| 30 | self._img.write(stream, self.rows_iter()) |
| 31 | |
| 32 | def rows_iter(self): |
| 33 | yield from self.border_rows_iter() |
| 34 | border_col = [1] * (self.box_size * self.border) |
| 35 | for module_row in self.modules: |
| 36 | row = ( |
| 37 | border_col |
| 38 | + list( |
| 39 | chain.from_iterable( |
| 40 | ([not point] * self.box_size) for point in module_row |
| 41 | ) |
| 42 | ) |
| 43 | + border_col |
| 44 | ) |
| 45 | for _ in range(self.box_size): |
| 46 | yield row |
| 47 | yield from self.border_rows_iter() |
| 48 | |
| 49 | def border_rows_iter(self): |
| 50 | border_row = [1] * (self.box_size * (self.width + self.border * 2)) |