X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka_Displayio.git/blobdiff_plain/db0e6ebaa04252976941cb24f1cef587f5de130a..96a8f5564dce100d739e43528ecd40a10316be8d:/bitmaptools/__init__.py?ds=inline diff --git a/bitmaptools/__init__.py b/bitmaptools/__init__.py index 4b18c45..e3490f6 100644 --- a/bitmaptools/__init__.py +++ b/bitmaptools/__init__.py @@ -216,3 +216,24 @@ def rotozoom( v += dv_row rowu += du_col rowv += dv_col + + +def arrayblit( + bitmap: Bitmap, + data: circuitpython_typing.ReadableBuffer, + x1: int = 0, y1: int = 0, + x2: int | None = None, y2: int | None = None, + skip_index: int | None = None): + + if x2 is None: + x2 = bitmap.width + if y2 is None: + y2 = bitmap.height + + _value_count = 2 ** bitmap._bits_per_value + for y in range(y1, y2): + for x in range(x1, x2): + i = y * (x2 - x1) + x + value = int(data[i] % _value_count) + if skip_index is None or value != skip_index: + bitmap[x, y] = value