Skip to main content

画像の読み込み

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

画像の読み込み

このリポジトリでは、Wio TerminalのSDカードからTFT LCDスクリーンに画像を読み込んで表示する方法を説明します。この実装はデザインに非常に役立ち、さまざまな場面で使用できます!

ライブラリのインストール

Wio Terminal用SDカードライブラリのインストール

Wio Terminal用TFT LCDライブラリのインストール

画像フォーマットの設定

STEP 1: 画像の準備

note
画像フォーマットをWindows 24ビットBMP形式に変換し、適切なフォルダに配置する必要があります。これには`Microsoft Paint`を使用することをお勧めします。
  • Step 1-1: Microsoft Paintを使用して画像をリサイズし、スクリーン表示領域の最大ピクセルサイズに収まるようにします。

  • Step 1-2: 次に、名前を付けて保存をクリックし、BMP画像を選択して、ファイルタイプのドロップダウンから24ビットビットマップ(.bmp)を選択して保存します。

  • Step 1-3: フォルダ名をbmpとし、このフォルダ内にWindows .bmp形式の画像を保存します。

STEP 2: 24ビットビットマップ画像をマイクロコントローラで読み取り可能な8ビットまたは16ビットbmp形式に変換

note
組み込みシステムでbmp画像を表示するには、Windows bmp形式の一部情報(ヘッダファイル)を削除する必要があります。この作業を自動化するPythonスクリプトを作成しましたので、以下の2つのオプションから選択して画像を変換してください。

オプション1: 事前構築されたWindows実行ファイルを使用(Windowsのみ)

  • Step 2-1-1: Pyinstaller{target=_blank}パッケージを使用して実行ファイルを準備しました。bmp_converter.exeをクリックしてダウンロードしてください。

  • Step 2-1-2: ダウンロードしたbmp_converter.exeStep 1-3で作成したbmpフォルダと同じディレクトリに配置します。

  • Step 2-1-3: bmp_converter.exeをダブルクリックして実行し、ポップアップしたターミナルで以下の2つのオプションから選択します: "1を入力して8ビットカラーに変換; 2を入力して16ビットカラーに変換"。

オプション2: Pythonソースコードを使用(クロスプラットフォーム対応)

note
コンピュータにPythonがインストールされている必要があります。
  • Step 2-2-1: Pythonスクリプトbmp_converter.pyをダウンロードし、Step 1-3で作成したbmpフォルダと同じディレクトリに保存します。

  • Step 2-2-2: cmdまたはターミナルを開いてPythonスクリプトを実行します。まず、bmp_converter.pybmpフォルダが保存されているディレクトリにcdで移動し、Pythonスクリプトを実行します。

  • Step 2-2-3: 以下の2つのオプションから選択します: "1を入力して8ビットカラーに変換; 2を入力して16ビットカラーに変換"

STEP 3: 画像の準備完了

変換された.bmp画像は、bmpフォルダ内のrgb332(8ビット)またはrgb565(16ビット)という名前の別フォルダに保存されます。

はじめに

RawImage.hライブラリのインストール

このライブラリは画像の読み込みと表示を簡単にするために使用されます。RawImage.hをダウンロードし、このヘッダファイルをスケッチの場所に添付してください。

Arduinoでの画像初期化

  • スクリーンに画像を表示するには
//スクリーン上に8ビットカラー画像を描画するには、(x, y)から開始します:
drawImage<uint8_t>("SDカード画像へのパス", x, y);

//スクリーン上に16ビットカラー画像を描画するには、(x, y)から開始します:
drawImage<uint16_t>("SDカード画像へのパス", x, y);
  • 画像を初期化するには(上記のdrawImage関数を使用する場合は不要)
//8ビットカラーを使用する場合、以下のように画像を初期化します:
Raw8 * img8 = newImage<uint8_t>("SDカード画像へのパス");

//16ビットカラーを使用する場合、以下のように画像を初期化します:
Raw16 * img16 = newImage<uint16_t>("SDカード画像へのパス");

サンプルコード


# include"TFT_eSPI.h"
# include "Seeed_FS.h" //SDカードライブラリを含む
# include"RawImage.h" //画像処理ライブラリを含む
TFT_eSPI tft;

void setup() {
//SDカードを初期化
if(!SD.begin(SDCARD_SS_PIN, SDCARD_SPI)) {
while (1);
}
tft.begin();
tft.setRotation(3);

drawImage<uint8_t>("test.bmp", 0, 0); //SDカード内のこの8ビット画像を(0, 0)から表示

}

void loop() {
}

FAQs

ImportError: No module named PILが発生した場合:

  • cmdまたはターミナルでpip install pillowを入力してPythonモジュールをインストールしてください。

技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。

Loading Comments...