I have created a new library for rendering RLE (run length encoded) bitmaps on any Adafruit GFX compatible display. It is available form the Library Manager as ‘RLEBitmap’. The bitmaps are stored as data in your program, not as files.
RLE is a very simple compression method that works well on images with few colors and large regions of colors - for example, many icons.
I have included with the library an icon set for showing weather conditions or forecasts, and a second set for displaying phases of the moon.
The weather set has 20 day and 20 night icons, although many of the night icons are the same as the day ones. The duplicates are provided for convenience / completeness, but in practice there is no need to use them. Here’s ‘mostlyclear’:
Each weather image is about 900 bytes.
The weather icons are based on a set originally designed by Ashley Jager. They are sized at 128x128, and the API can render them smaller by dividing by any integer amount.
The moon image is from NASA. Here is the 128x128 version:
Each version also comes with a set of 32 masks to show the phases of the moon. The entire set is provided in several different sizes to suit your requirements.
Since the moon has much more variation, it does not compress as well. The 128x128 version uses about 8400 bytes. 64x64 is still quite recognizable, and uses about 2400 bytes:
Finally, there is source code for a Windows program to convert a bitmap (.BMP file) to this encoding, used for all the images here.