From 9aa60f5627fdfe8cb2a71b2764c2d982942b7075 Mon Sep 17 00:00:00 2001 From: dherrada Date: Thu, 6 Aug 2020 13:44:20 -0400 Subject: [PATCH 1/4] Set bitmap and palette to have default values --- adafruit_imageload/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/adafruit_imageload/__init__.py b/adafruit_imageload/__init__.py index c6fe8b5..d7fb804 100644 --- a/adafruit_imageload/__init__.py +++ b/adafruit_imageload/__init__.py @@ -28,13 +28,14 @@ * Author(s): Scott Shawcroft """ +import displayio # pylint: disable=import-outside-toplevel __version__ = "0.0.0-auto.0" __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad.git" -def load(filename, *, bitmap=None, palette=None): +def load(filename, *, bitmap=displayio.Bitmap, palette=displayio.Palette): """Load pixel values (indices or colors) into a bitmap and colors into a palette. bitmap is the desired type. It must take width, height and color_depth in the constructor. It From 1c270793bb5cfc1aec8df14408adb483fb439f1c Mon Sep 17 00:00:00 2001 From: dherrada Date: Thu, 6 Aug 2020 13:57:09 -0400 Subject: [PATCH 2/4] Formatting --- adafruit_imageload/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/adafruit_imageload/__init__.py b/adafruit_imageload/__init__.py index d7fb804..fbb2450 100644 --- a/adafruit_imageload/__init__.py +++ b/adafruit_imageload/__init__.py @@ -29,6 +29,7 @@ """ import displayio + # pylint: disable=import-outside-toplevel __version__ = "0.0.0-auto.0" From 83bb738063977a28343fd17791faadadfad42f2f Mon Sep 17 00:00:00 2001 From: dherrada Date: Thu, 6 Aug 2020 14:54:05 -0400 Subject: [PATCH 3/4] Only import displayio if needed --- adafruit_imageload/__init__.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/adafruit_imageload/__init__.py b/adafruit_imageload/__init__.py index fbb2450..9d987b5 100644 --- a/adafruit_imageload/__init__.py +++ b/adafruit_imageload/__init__.py @@ -28,15 +28,13 @@ * Author(s): Scott Shawcroft """ -import displayio - # pylint: disable=import-outside-toplevel __version__ = "0.0.0-auto.0" __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_ImageLoad.git" -def load(filename, *, bitmap=displayio.Bitmap, palette=displayio.Palette): +def load(filename, *, bitmap=None, palette=None): """Load pixel values (indices or colors) into a bitmap and colors into a palette. bitmap is the desired type. It must take width, height and color_depth in the constructor. It @@ -45,6 +43,14 @@ def load(filename, *, bitmap=displayio.Bitmap, palette=displayio.Palette): palette is the desired pallete type. The constructor should take the number of colors and support assignment to indices via []. """ + if not bitmap or not palette: + import displayio + + if not bitmap: + bitmap = displayio.Bitmap + if not palette: + palette = displayio.Palette + with open(filename, "rb") as file: header = file.read(3) file.seek(0) From e6ab054ef12be79eb3c2d585ead84e41077dea29 Mon Sep 17 00:00:00 2001 From: caternuson Date: Mon, 17 Aug 2020 16:01:57 -0700 Subject: [PATCH 4/4] add try/except and update example --- adafruit_imageload/__init__.py | 15 ++++++++++----- examples/imageload_simpletest.py | 5 ++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/adafruit_imageload/__init__.py b/adafruit_imageload/__init__.py index 9d987b5..090b812 100644 --- a/adafruit_imageload/__init__.py +++ b/adafruit_imageload/__init__.py @@ -44,12 +44,17 @@ def load(filename, *, bitmap=None, palette=None): support assignment to indices via []. """ if not bitmap or not palette: - import displayio + try: + # use displayio if available + import displayio - if not bitmap: - bitmap = displayio.Bitmap - if not palette: - palette = displayio.Palette + if not bitmap: + bitmap = displayio.Bitmap + if not palette: + palette = displayio.Palette + except ModuleNotFoundError: + # meh, we tried + pass with open(filename, "rb") as file: header = file.read(3) diff --git a/examples/imageload_simpletest.py b/examples/imageload_simpletest.py index d986f4b..f36929b 100644 --- a/examples/imageload_simpletest.py +++ b/examples/imageload_simpletest.py @@ -2,9 +2,8 @@ import displayio import adafruit_imageload -image, palette = adafruit_imageload.load( - "images/4bit.bmp", bitmap=displayio.Bitmap, palette=displayio.Palette -) +image, palette = adafruit_imageload.load("images/4bit.bmp") + tile_grid = displayio.TileGrid(image, pixel_shader=palette) group = displayio.Group()