microSD カードのビットマップ・ファイルのビュアー.画像の最大値 縦:272ピクセル,横:480ピクセル. Bitmap file viewer for microSD card. Maximum size Vertical: 272 pixels, Horizontal: 480.
Dependencies: SDFileSystem_Warning_Fixed F746_GUI
Diff: ReadAndDisplay.hpp
- Revision:
- 0:f62ffd3644bf
diff -r 000000000000 -r f62ffd3644bf ReadAndDisplay.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ReadAndDisplay.hpp Sun Oct 21 11:29:47 2018 +0000 @@ -0,0 +1,34 @@ +//----------------------------------------------------------- +// microSD のビットマップファイルを読み込み表示するグローバル関数 +// 縦方向に分割して読み込みと描画を行う +// F746_GUI は Rev.32 を使うこと +// +// 2018/10/21, Copyright (c) 2018 MIKAMI, Naoki +//----------------------------------------------------------- + +#include "BitmapReader.hpp" + +using namespace Mikami; + +void ReadAndDraw(const string fileName, SD_BitmapReader &sdReader, + uint8_t bmp[], uint32_t headerSize, int div) +{ + sdReader.Open(fileName); // ファイルのオープン + sdReader.ReadFile(bmp, headerSize); // ヘッダの読み込み + + uint32_t height = sdReader.GetHeight(bmp); // 画像の高さ,単位:ピクセル + uint32_t h0 = height/div; // 分割した画像の高さ,単位:ピクセル + sdReader.SetHeight(bmp, h0); // 画像の高さ設定,単位:ピクセル + + uint8_t *ptr = (uint8_t *)(bmp+headerSize); // 画像データのポインタ + uint32_t size = sdReader.GetSize(bmp)/div; // 一度で読込む画像データのサイズ計算,単位:バイト + + // 縦方向に分割して読み込みと描画を行う + for (int n=0; n<div; n++) + { + sdReader.ReadFile(ptr, size); // 画像データの読み込み + GuiBase::GetLcd().DrawBitmap(0, (div-1-n)*h0, bmp); + } + + sdReader.Close(); // ファイルのクローズ +}