Adafruit_CircuitPython_ImageLoad
Adafruit_CircuitPython_ImageLoad copied to clipboard
Add buffer option for storing bitmaps to prevent out memory due to fragmentation.
For the case of sequentially loading large bitmaps and then freeing them from memory, it can sometimes cause the RAM to get fragmented so there is no contiguous chunk of memory large enough to hold the next bitmap:
MemoryError: memory allocation failed
It could be useful to have a way to define a bitmap "buffer" into which you can load a bitmap, and prevent memory segmentation. This would have to accommodate the varying color depth ("bits_per_pixel") of bitmaps or require this to be an input when creating the bitmap buffer. This buffer could be added as an optional input parameter to the adafruit_imageload.load function to direct it where to store the loaded bitmap.
The new bitmaptools.readinto function may help with this: https://circuitpython.readthedocs.io/en/latest/shared-bindings/bitmaptools/index.html#bitmaptools.readinto
This needs some exploration to verify the best way of using it, and an example will be useful.