(雑メモ) AtomS3+M5Unifiedで透過PNG画像表示&背景色変更

TODO: あとでちゃんと記事にする
AtomS3のLCDにM5Unifiedを使って画像表示するサンプルです。
水色の背景に透過のキャラクター画像を重ねて表示しています。


sd.png
LCDの表示
#include <Arduino.h>
#include <SPIFFS.h>
#include <M5Unified.h>

constexpr auto IMG_PATH = "/sd.png";

M5Canvas canvas(&M5.Display);
// 画像は6.54KB 128x128で軽量化済み
uint8_t gIMGBuf[8192];


/** 画像をSPIFFSから読み込む */
void readIMG() {
  auto file = SPIFFS.open(IMG_PATH, "r");
  file.read(gIMGBuf, 8192);
  file.close();
}


/** M5のセットアップ */
void setupM5() {
  SPIFFS.begin();
  M5.begin();
  readIMG();
  M5.Display.setBrightness(128);
  canvas.createSprite(128, 128);
  // 水色で塗りつぶし
  auto color = M5.Display.color565(126, 205, 246);
  canvas.fillRect(0, 0, 128, 128, color);
  // PNG画像を重ねて描画
  canvas.drawPng(gIMGBuf, 8192);
  canvas.pushSprite(0, 0);
}


/** セットアップ */
void setup() {
  setupM5();
}


/** ループ */
void loop() {

}


いいなと思ったら応援しよう!