ビットマップコンバーターとは?

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.