OLEDドット絵エディタ


メンバー
user
Yugi Tech Lab
@yugi_tech_lab
作品ページ
ブラウザだけで動くOLEDディスプレイ向けドット絵エディタです。 Arduino(Adafruit_SSD1306)用のCコードをそのまま出力できます。 --- # OLEDドット絵エディタ ## 🔗 使用手順 ドット絵を描く → コードを作る → コピーして自分のプログラムに貼り付けるだけで、イラストをOLEDに表示できます! <リンクはこちら> https://yugi-tech-lab.github.io/BM-GamePod/sw/tools/oled_dot_editor.html ![](/pic/7f5cfa22-9ef6-4af8-bfc9-1906ccde7578.png) 活用事例 > ※画像のスタックチャンは、ししかわ様が開発・公開している手乗りサイズのスーパーかわいいコミュニケーションロボットです。 --- # 🧪 絵を中央表示するだけのサンプルコード ![](/pic/e7c517d1-ed4d-4c3e-9884-fd3cdee3b31e.png) ```cpp #include #include #include #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); const uint8_t PLAYER_BMP[] PROGMEM = { 0x03, 0x83, 0x80, 0x06, 0x66, 0xc0, 0x0c, 0x3c, 0x40, 0xff, 0xff, 0xe0, 0x90, 0x00, 0x10, 0x97, 0xff, 0xd0, 0x94, 0x00, 0x50, 0x95, 0xff, 0x50, 0x95, 0xff, 0x50, 0x95, 0xbb, 0x50, 0x95, 0xff, 0x50, 0x95, 0xc7, 0x50, 0x95, 0xff, 0x50, 0x95, 0xff, 0x50, 0x94, 0x00, 0x50, 0xcf, 0xff, 0xd0, 0x78, 0x00, 0x20, 0x1f, 0xff, 0xc0, 0x02, 0x18, 0x80, 0x03, 0xff, 0x80 }; void setup() { Wire.begin(); if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { while (1); } display.clearDisplay(); display.fillScreen(SSD1306_WHITE); int x = (SCREEN_WIDTH - 20) / 2; int y = (SCREEN_HEIGHT - 20) / 2; display.drawBitmap(x, y, PLAYER_BMP, 20, 20, SSD1306_BLACK); display.display(); } void loop() { } ``` --- # 📜 使用条件について クレジット表記などは特に不要です! 応援して頂ける方は、公開時に - 「Yugi Tech Lab のソフトを参考にした」 - 「本ページを参考にした」 などを書いて頂けると、とても嬉しいです。 --- # 機能一覧 ## 🖼️ キャンバス表示 ### 3種類の表示モード - キャンバス固定(小 / 中 / 大:400 / 600 / 800px) - セル正方形(グリッドサイズに合わせて自動フィット) - 固定セル+スクロール(大きなドット絵もスクロール編集可能) ### その他 - グリッド線トグル(表示 / 非表示切替) - 中心線ガイド(赤い破線で水平・垂直中心を表示) --- ## ✏️ 描画ツール - **ペン** 1ドット単位でフリーハンド描画 - **塗りつぶし(フラッドフィル)** 同色の連続領域を一括塗り - **直線(ブレゼンハム法)** ドラッグで直線描画 - **四角形(枠線)** ドラッグで矩形描画 - **楕円 / 円(枠線)** ドラッグで楕円描画 - **右クリック描画** 選択中と逆色で描画 --- ## 🔧 ドット絵編集 - 左右反転 / 上下反転 - 白黒反転 - 時計回り90°回転 / 反時計回り90°回転 - シフト移動(上下左右へ1ドット移動) - 全消去 - スケール変更(÷2 / ×2 / 任意倍率) - Undo / Redo (各30ステップ、Ctrl+Z / Ctrl+Y対応) --- ## 📐 グリッドサイズ変更 横・縦のマス数を入力して「サイズ反映」。 変更時には以下から処理方法を選択できます。 - 左上を起点に保持 - 中央寄せで保持 - 全て消去 - キャンセル --- ## 🖼️ 参考画像機能 ### 画像読み込み ローカル画像を参照表示可能。 ### 表示モード - 左隣表示(小:150px / 大:400px) - 背景重ね表示 (透明度・拡大率・X/Yオフセット調整可能) ### その他 - 透明度スライダー(10〜100%) - 拡大率 / 横移動 / 縦移動スライダー - リセットボタン - 画像消去 --- ## 💾 OLEDコード出力 ### Cコード生成 Adafruit_SSD1306 + `drawBitmap()` 形式のコードを生成。 - 12バイトごとに整形 - 変数名変更可能 ### 背景色選択 - 白背景 - 黒背景 (黒背景時はビット反転して出力) ### コピー機能 - コメント込み全体コピー - 配列部分のみコピー ### その他 - コードから復元 - HEXプレビュー - バイト数 / 行あたりバイト数表示 --- ## 🖼️ PNG書き出し ### 書き出しサイズ - ドット絵サイズ(1ドット = 1px) - キャンバス表示サイズ 背景色はOLEDコード出力設定と連動します。 --- ## 📁 ドット絵管理(サンプルリスト) - 複数ドット絵を名前付き保存 - JSON読み込み - JSON書き出し - リスト登録 / 削除 - リストから即時表示切替 --- ## ⌨️ キーボードショートカット | キー | 動作 | |---|---| | Ctrl + Z | Undo | | Ctrl + Y / Ctrl + Shift + Z | Redo |