0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WioTerminalでROMデータのJpegを表示する

Last updated at Posted at 2020-06-21

どんな内容か?

WioTerminalのLCD(320x240)に画像を表示しようとした場合に、SDカードからファイルを読み込んで表示するサンプルは多数見つかるのですが、WioTerminalは潤沢なFlashROMを持っているので、Constでプログラム中に持っていてもいいよなぁと思ったので作りました。その場合に、C言語のconstで画像のROMデータを作成するのが手間なので、JpegファイルからROMのConstデータを生成するWebサイトも作成しました。プログラムはたいしたことが無いので、この変換サイト作ったのがメインかもしれませんね。
image.png

プログラムについて

説明するほどではありませんが主要な部分を簡単に解説します。★部分

WioMemoryJpeg.ino
// ★Jpegの表示には、@lovyan03さんの高速描画ライブラリを利用しました。
// https://platformio.org/lib/show/7359/LovyanGFX
#include <LGFX_TFT_eSPI.hpp>

static TFT_eSPI tft;               // TFT_eSPIがLGFXの別名として定義されます。

// ★画像のサイズを定義します。
#define IMG_WIDTH  (320)
#define IMG_HEIGHT (240)

extern const uint8_t img[15687];

void setup()
{
  tft.init();
  tft.setRotation(1);

  // ★ここでJpegを描画します。ROMテーブルの先頭アドレスと画像のサイズを与えるだけです。
  tft.drawJpg(img, sizeof(img), 0, 0, IMG_WIDTH, IMG_HEIGHT);
}

void loop() {
  // put your main code here, to run repeatedly:

}

// ★Jpegのデータを作成するのが、手作業やバイナリエディタで作成するのが手間でしたので
//   Javascriptでデータを作成できるサイトを作りました。
// https://wioterminal.s3-ap-northeast-1.amazonaws.com/index.html
const uint8_t img[15687] = {
0xFF,0xD8,0xFF,0xE0,0x00,0x10,0x4A,0x46,0x49,0x46, 省略・・・・};

全プログラムはGithubからダウンロードが可能です。

Webサイトについて

こちらから、利用することが可能です。
使い方については説明不要だと思います。ファイルを指定すると、右下にconst定義のコードが出力されるので、コピペしてArduino IDEでご利用いただけます。特に画像サイズ制限は行っていません。
image.png

以上です。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?