iikagenlabo

興味のあることを良い加減で研究していきます

PNGからM5Stackで表示できるBitmapのテキストデータに変換するPythonツール

M5Stackを買いました! どうやら人気らしくネットでの在庫がなくなっているようです。(2019.04現在)

f:id:iikagenlabo:20190423000752j:plain

何をしてよいのか分からなかったのですが、SDカードに入ったjpeg画像は簡単に表示できるということを知って、早速表示してみました。 ArduinoIDEはすでに入っていたので簡単なスケッチを書くだけです。

void setup(void) {
  M5.begin();
  M5.Lcd.drawJpgFile(SD, "/miku.jpg");
}

f:id:iikagenlabo:20190423000939j:plain

コードを書くよりも、16GB以下のマイクロSDカードを部屋で探す方が時間がかかりました(笑)

次はM5.LCD.drawRGBBitmapを使って、ドット絵などの小さい画像を表示させます。 画像を切り替えてアニメーションさせるために、SDカードの画像ファイルではなくプログラム内に画像データとして置きます。

youtu.be

このときに画像をテキストデータに変換するのですが、適当なツールが見つけられなかったので、簡単なコンバータをPythonで作りました。 ソースコードはこちら。 github.com

python png2img.py <pngfile>

とすると、画面にテキストデータが表示されます。 コピペするかリダイレクトでファイルにしてコードに埋め込んでください。

//  例
const unsigned short img0[] = {
  0x0000,0x0000,0x0000,0x3800,0xD800,0xC800,0xC800,0xC800,
  0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,
  0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,
  0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,0xC800,
};