Skip to content

Commit b7046e2

Browse files
committed
fix for #21, always create reference
1 parent 5b89512 commit b7046e2

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

adafruit_bitmapsaver.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# SPDX-FileCopyrightText: 2019 Dave Astels for Adafruit Industries
2+
# SPDX-FileCopyrightText: 2022 Matt Land
23
#
34
# SPDX-License-Identifier: MIT
45

@@ -10,7 +11,7 @@
1011
Make a screenshot (the contents of a displayio.Display) and save in a BMP file.
1112
1213
13-
* Author(s): Dave Astels
14+
* Author(s): Dave Astels, Matt Land
1415
1516
Implementation Notes
1617
--------------------
@@ -38,18 +39,18 @@
3839

3940
def _write_bmp_header(output_file, filesize):
4041
output_file.write(bytes("BM", "ascii"))
41-
output_file.write(struct.pack("<I", filesize))
42+
output_file.write(struct.pack("<I", filesize)) # pylint: disable=no-member
4243
output_file.write(b"\00\x00")
4344
output_file.write(b"\00\x00")
44-
output_file.write(struct.pack("<I", 54))
45+
output_file.write(struct.pack("<I", 54)) # pylint: disable=no-member
4546

4647

4748
def _write_dib_header(output_file, width, height):
48-
output_file.write(struct.pack("<I", 40))
49-
output_file.write(struct.pack("<I", width))
50-
output_file.write(struct.pack("<I", height))
51-
output_file.write(struct.pack("<H", 1))
52-
output_file.write(struct.pack("<H", 24))
49+
output_file.write(struct.pack("<I", 40)) # pylint: disable=no-member
50+
output_file.write(struct.pack("<I", width)) # pylint: disable=no-member
51+
output_file.write(struct.pack("<I", height)) # pylint: disable=no-member
52+
output_file.write(struct.pack("<H", 1)) # pylint: disable=no-member
53+
output_file.write(struct.pack("<H", 24)) # pylint: disable=no-member
5354
for _ in range(24):
5455
output_file.write(b"\x00")
5556

@@ -79,6 +80,7 @@ def _write_pixels(output_file, pixel_source, palette):
7980
saving_bitmap = isinstance(pixel_source, Bitmap)
8081
width, height = _rotated_height_and_width(pixel_source)
8182
row_buffer = bytearray(_bytes_per_row(width))
83+
result_buffer = False
8284
for y in range(height, 0, -1):
8385
buffer_index = 0
8486
if saving_bitmap:
@@ -98,8 +100,9 @@ def _write_pixels(output_file, pixel_source, palette):
98100
row_buffer[buffer_index] = b & 0xFF
99101
buffer_index += 1
100102
output_file.write(row_buffer)
101-
for i in range(width * 2):
102-
result_buffer[i] = 0
103+
if result_buffer:
104+
for i in range(width * 2):
105+
result_buffer[i] = 0
103106
gc.collect()
104107

105108

0 commit comments

Comments
 (0)