什么是点阵图转换器?

轻松将图像转换为 Arduino 显示项目所需的黑白点阵图!

点阵图转换器功能
  1. 简单的图像上传
  2. 支持常用显示分辨率或自定义尺寸
  3. 具备 4 种抖动算法的可调亮度等级
  4. 原始与转换图像的实时预览
  5. 生成 Arduino 代码 (PROGMEM 字节数组)

Bitmap Converter Example

图像转点阵图转换器

显示分辨率
选择图像文件

使用说明

  1. 显示分辨率: 选择显示分辨率:
  2. 选择图像文件: 请选择一个图像文件:
  3. 亮度调整:: 亮度调整:
  4. 生成代码: 生成 Arduino 代码
  5. 生成的 Arduino 代码: 生成的 Arduino 代码


示例 Arduino 代码 (U8g2 库)

此示例展示如何将生成的点阵图用于流行的 U8g2 库。

#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.
  // NOTE: U8g2's drawXBMP expects MSB first data format.
  // If you checked "Swap bits (U8g2 LSB)", the generated data is LSB first.
  // U8g2 doesn't have a built-in function for LSB-first XBMP directly.
  // You might need a custom drawing function or ensure your U8g2 mode matches the data.
  // For standard usage with drawXBMP, leave "Swap bits" UNCHECKED.
  // The "Invert Colors" option affects the data itself, drawXBMP will draw it as is.
  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.