Skip to content

Commit ef436d2

Browse files
committed
update to CP 10 with busdisplay
1 parent f9b95d2 commit ef436d2

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

adafruit_bitmapsaver.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
================================================================================
99
1010
Save a displayio.Bitmap (and associated displayio.Palette) in a BMP file.
11-
Make a screenshot (the contents of a displayio.Display) and save in a BMP file.
11+
Make a screenshot (the contents of a busdisplay.BusDisplay) and save in a BMP file.
1212
1313
1414
* Author(s): Dave Astels, Matt Land
@@ -26,12 +26,17 @@
2626
2727
"""
2828

29-
# imports
29+
# pylint: disable=ungrouped-imports
3030

3131
import gc
3232
import struct
3333
import board
34-
from displayio import Bitmap, Palette, Display, ColorConverter
34+
from displayio import Bitmap, Palette, ColorConverter
35+
36+
try:
37+
from busdisplay import BusDisplay
38+
except ImportError:
39+
from displayio import Display as BusDisplay
3540

3641
try:
3742
from typing import Tuple, Optional, Union
@@ -67,9 +72,11 @@ def _bytes_per_row(source_width: int) -> int:
6772
return pixel_bytes + padding_bytes
6873

6974

70-
def _rotated_height_and_width(pixel_source: Union[Bitmap, Display]) -> Tuple[int, int]:
75+
def _rotated_height_and_width(
76+
pixel_source: Union[Bitmap, BusDisplay]
77+
) -> Tuple[int, int]:
7178
# flip axis if the display is rotated
72-
if isinstance(pixel_source, Display) and (pixel_source.rotation % 180 != 0):
79+
if isinstance(pixel_source, BusDisplay) and (pixel_source.rotation % 180 != 0):
7380
return pixel_source.height, pixel_source.width
7481
return pixel_source.width, pixel_source.height
7582

@@ -111,7 +118,7 @@ def rgb565_to_rgb888(rgb565):
111118
# pylint:disable=too-many-locals
112119
def _write_pixels(
113120
output_file: BufferedWriter,
114-
pixel_source: Union[Bitmap, Display],
121+
pixel_source: Union[Bitmap, BusDisplay],
115122
palette: Optional[Union[Palette, ColorConverter]],
116123
) -> None:
117124
saving_bitmap = isinstance(pixel_source, Bitmap)
@@ -156,7 +163,7 @@ def _write_pixels(
156163

157164
def save_pixels(
158165
file_or_filename: Union[str, BufferedWriter],
159-
pixel_source: Union[Display, Bitmap] = None,
166+
pixel_source: Union[BusDisplay, Bitmap] = None,
160167
palette: Optional[Union[Palette, ColorConverter]] = None,
161168
) -> None:
162169
"""Save pixels to a 24 bit per pixel BMP file.
@@ -177,7 +184,7 @@ def save_pixels(
177184
raise ValueError(
178185
"Third argument must be a Palette or ColorConverter for a Bitmap save"
179186
)
180-
elif not isinstance(pixel_source, Display):
187+
elif not isinstance(pixel_source, BusDisplay):
181188
raise ValueError("Second argument must be a Bitmap or Display")
182189
try:
183190
if isinstance(file_or_filename, str):

0 commit comments

Comments
 (0)