There are three types of monochrome bitmap:
- MSB first. 8-bits across a row per byte. Used by Adafruit drawBitmap()
- LSB first. 8-bits across a row. Used by Adafruit drawXBitmap() and U8g2lib
- KS0108 style. 8 vertical bits per byte. Draw an 8-bit deep stripe across the screen. Called a page.
Method (3) is native to the SSD1306, KS0108, … controller. And is the format used by Adafruit and U8g2lib for RAM buffers.
I found Image2GLCD on the Internet. It appears to be capable of generating all three styles.
I could not get it to work properly. The program is Chinese. I don’t know how to register in Chinese. I can’t read Chinese Help files.
Image2GLCD can resize to fit your GLCD / OLED
Image2GLCD can alter colour depth / contrast.
Your bitmaps were made for (2) with default depth. You could get better images if you adjust the depth.
I suspect that some programs can extract multiple frames from an animated GIF. Which would be nice.
Anyway, I have adapted your arrays to suit a Uno.
And converted them to (3) format.
A Uno can achieve about 15 FPS with I2C and drawBitmap() or 30FPS with the native KS0108 format.
If you use SPI, you can get 30FPS and 285 FPS on a Uno.
Can anyone recommend an Image program that work properly?
It would be nice to generate multiple C arrays directly from animated GIF.
OLED_at80s.zip (29.2 KB)