diff --git a/adafruit_portalbase/graphics.py b/adafruit_portalbase/graphics.py index b1a92a3..89c38ea 100644 --- a/adafruit_portalbase/graphics.py +++ b/adafruit_portalbase/graphics.py @@ -23,6 +23,7 @@ import gc +import adafruit_imageload import displayio __version__ = "0.0.0+auto.0" @@ -76,11 +77,22 @@ def set_background(self, file_or_color, position=None): if not file_or_color: return # we're done, no background desired - if isinstance(file_or_color, str): # its a filenme: - background = displayio.OnDiskBitmap(file_or_color) + if isinstance(file_or_color, str): # it's a filename: + file_lower = file_or_color.lower() + if file_lower.endswith(".bmp"): + background = displayio.OnDiskBitmap(file_or_color) + palette = background.pixel_shader + elif ( + file_lower.endswith(".jpg") + or file_lower.endswith(".jpeg") + or file_lower.endswith(".png") + ): + background, palette = adafruit_imageload.load(file_or_color) + else: + raise ValueError(f"Image File type {file_or_color} not supported") self._bg_sprite = displayio.TileGrid( background, - pixel_shader=background.pixel_shader, + pixel_shader=palette, x=position[0], y=position[1], ) diff --git a/requirements.txt b/requirements.txt index 13d73b5..0e67d1d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -13,3 +13,4 @@ adafruit-circuitpython-miniqr adafruit-circuitpython-requests adafruit-circuitpython-fakerequests adafruit-circuitpython-simpleio +adafruit-circuitpython-imageload