Comments (2)
BMP format is fully incompatible with 1-bit/8-bit modes, used by ssd1306 library. Thus, implementing work with bitmap formats is possible only in case larger footprint of library code, or large SRAM consumption.
Monochrome BMP
Monochrome BMP files encode pixels as bits from high bit to low. This order is reverse compared to XBMP, supported by ssd1306 library. Thus, we need to decide, which implementation is more important: speed or memory consumption.
8-bit BMP
8-bit format is completely different from format, used by LCD/OLED displays. Because 8-bit mode for LCD displays is 3-3-2 color mode, but 8-bit BMP files contain color indexes to predefined palette. There 2 possible implementations:
- new drawBitmap function to draw 8-bit BMP without pre-transformation (much code development), but we'll get fast execution and normal SRAM consumption, BUT LRE compression cannot be supported in this case.
- new drawBitmap function with pre-transformation function. We get fast execution, but larger memory consumption. Not suitable for AVR arch. LRE compression can be supported.
16-bit BMP
Even 16-bit BMP cannot be used as is with color displays. Because 16-bit BMP pixels are in 5-5-5, but most color displays use 5-6-5.
From described above, I see the only simple way - to develop functions for converting BMP to internal ssd1306 library format. But this way eliminates BMP usage for AVR controllers because of high requirements to SRAM.
from ssd1306.
No plan for now to implement bitmap format support. Maybe this feature will be added in future, if there will be some interest from users.
from ssd1306.
Related Issues (20)
- Working on a IP Camera - Anyka HOT 2
- pgmspace.h issue since 1.8.3 HOT 5
- ssd1306_setRotation
- How to use this in Linux running non single board computer (laptop's i2c port) HOT 1
- Apparent hang in AVR TWI communications when display absent
- nano_gfx_types.h defines macros which pollutes the global namespace and cause compile errors
- Add support for recent series of attiny MCUs HOT 2
- Support Pi Pico / RP2040 Microcontrollers HOT 3
- I2C definition for ESP32 Espressif HOT 3
- How to port it to ESP IDF HOT 1
- Minor edits needed for Teensy HOT 4
- Potential Conflict AHTX10/AHT10 and LCDGFX HOT 2
- "Failed to Initialize: No such file or directory!" on RPI zero 6.1.21+ #1642 Mon Apr 3 17:19:14 BST 2023 armv6l GNU/Linux HOT 1
- Print text at any Y-value? HOT 1
- Larger fonts possible? Turn off/on display? HOT 2
- Error compiling ssd1306_demo HOT 3
- how to convert custom fonts ? HOT 1
- How to specify i2c bus on linux? HOT 1
- None of examples load on attiny44 HOT 4
- ssd1306_demo
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ssd1306.