画像をC配列としてファームウェアに埋め込む
マイコンのディスプレイはPNGではなくバイト配列を食べます。スプラッシュ画像を#includeできるヘッダに変換します。
このガイドで使う道具
やりたいこと
OLEDや電子ペーパーのフレームバッファは生バイトを要求します。画像を長辺512px以内へ縮小し、8ビットグレースケール(1px1バイト)またはMSB先頭で詰めた1bppビットマップを出力します。
画像からヘッダへ
画像を選び、8bppまたは1bpp(ビットマップはしきい値と反転あり)を指定して配列名を付け、.hをダウンロードします。WIDTH/HEIGHT/BPPのdefineとバイト配列を含みます。
具体例
2×1で2ピクセルが0xABと0xCDの画像は、8bppでstatic const unsigned char icon[2] = { 0xab, 0xcd };になります。1bppでは行がバイト境界にパディングされ、幅9pxなら1行2バイト使います。
対応範囲
PNG/JPG/WebP、25MiBまで、長辺512pxへ縮小。グレースケールはRec.601輝度ミックス。RLEやパレット出力はなく、プレーンなバイト列でフレームバッファへのmemcpyに使えます。