u8g2.drawXBMP()).
See
sample code below.
This example shows how to use the generated bitmap with the popular U8g2 library.
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
// Include the generated bitmap header file
// Make sure this file is in the same directory as your .ino file,
// or provide the correct path.
#include "bitmap.h" // <-- RENAME THIS to match the generated code's filename suggestion
// Example for SSD1306 I2C display (replace with your display constructor)
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
// OLED TEXT ROW number, vertical position
const byte ROW[5] = {0, 15, 31, 47, 63};
void setup(void) {
Serial.begin(115200);
u8g2.begin();
Serial.println("u8g2 started");
}
void loop(void) {
u8g2.clearBuffer(); // clear the internal memory
// Draw the bitmap at position (0, 0)
// u8g2.drawXBMP(x_pos, y_pos, bitmap_width, bitmap_height, bitmap_data);
// Use the width and height mentioned in the generated code comments.
u8g2.drawXBMP(0, 0, 128, 64, your_image_bitmap); // <-- Use the array name from generated code
Serial.println("Code working!");
u8g2.sendBuffer(); // transfer internal memory to the display
delay(5000);
}
📋
Note: U8g2's drawXBMP function requires data in LSB-first (Least Significant Bit first) format, which matches the standard XBM specification. If your image conversion tool defaults to MSB-first output, you will need to enable an option (like "Swap bits", "LSB first", or "XBM format") to generate the correct LSB-first data needed by drawXBMP. When the data is correctly formatted as LSB-first, you can use it directly with the standard drawXBMP function without needing custom code.. The "Invert Colors" option modifies the bitmap data itself; `drawXBMP` will render the inverted image if the option was checked during generation.