microSD カードのビットマップ・ファイルのビュアー.画像の最大値 縦:272ピクセル,横:480ピクセル. Bitmap file viewer for microSD card. Maximum size Vertical: 272 pixels, Horizontal: 480.
Dependencies: SDFileSystem_Warning_Fixed F746_GUI
ReadAndDisplay.hpp@0:f62ffd3644bf, 2018-10-21 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sun Oct 21 11:29:47 2018 +0000
- Revision:
- 0:f62ffd3644bf
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:f62ffd3644bf | 1 | //----------------------------------------------------------- |
MikamiUitOpen | 0:f62ffd3644bf | 2 | // microSD のビットマップファイルを読み込み表示するグローバル関数 |
MikamiUitOpen | 0:f62ffd3644bf | 3 | // 縦方向に分割して読み込みと描画を行う |
MikamiUitOpen | 0:f62ffd3644bf | 4 | // F746_GUI は Rev.32 を使うこと |
MikamiUitOpen | 0:f62ffd3644bf | 5 | // |
MikamiUitOpen | 0:f62ffd3644bf | 6 | // 2018/10/21, Copyright (c) 2018 MIKAMI, Naoki |
MikamiUitOpen | 0:f62ffd3644bf | 7 | //----------------------------------------------------------- |
MikamiUitOpen | 0:f62ffd3644bf | 8 | |
MikamiUitOpen | 0:f62ffd3644bf | 9 | #include "BitmapReader.hpp" |
MikamiUitOpen | 0:f62ffd3644bf | 10 | |
MikamiUitOpen | 0:f62ffd3644bf | 11 | using namespace Mikami; |
MikamiUitOpen | 0:f62ffd3644bf | 12 | |
MikamiUitOpen | 0:f62ffd3644bf | 13 | void ReadAndDraw(const string fileName, SD_BitmapReader &sdReader, |
MikamiUitOpen | 0:f62ffd3644bf | 14 | uint8_t bmp[], uint32_t headerSize, int div) |
MikamiUitOpen | 0:f62ffd3644bf | 15 | { |
MikamiUitOpen | 0:f62ffd3644bf | 16 | sdReader.Open(fileName); // ファイルのオープン |
MikamiUitOpen | 0:f62ffd3644bf | 17 | sdReader.ReadFile(bmp, headerSize); // ヘッダの読み込み |
MikamiUitOpen | 0:f62ffd3644bf | 18 | |
MikamiUitOpen | 0:f62ffd3644bf | 19 | uint32_t height = sdReader.GetHeight(bmp); // 画像の高さ,単位:ピクセル |
MikamiUitOpen | 0:f62ffd3644bf | 20 | uint32_t h0 = height/div; // 分割した画像の高さ,単位:ピクセル |
MikamiUitOpen | 0:f62ffd3644bf | 21 | sdReader.SetHeight(bmp, h0); // 画像の高さ設定,単位:ピクセル |
MikamiUitOpen | 0:f62ffd3644bf | 22 | |
MikamiUitOpen | 0:f62ffd3644bf | 23 | uint8_t *ptr = (uint8_t *)(bmp+headerSize); // 画像データのポインタ |
MikamiUitOpen | 0:f62ffd3644bf | 24 | uint32_t size = sdReader.GetSize(bmp)/div; // 一度で読込む画像データのサイズ計算,単位:バイト |
MikamiUitOpen | 0:f62ffd3644bf | 25 | |
MikamiUitOpen | 0:f62ffd3644bf | 26 | // 縦方向に分割して読み込みと描画を行う |
MikamiUitOpen | 0:f62ffd3644bf | 27 | for (int n=0; n<div; n++) |
MikamiUitOpen | 0:f62ffd3644bf | 28 | { |
MikamiUitOpen | 0:f62ffd3644bf | 29 | sdReader.ReadFile(ptr, size); // 画像データの読み込み |
MikamiUitOpen | 0:f62ffd3644bf | 30 | GuiBase::GetLcd().DrawBitmap(0, (div-1-n)*h0, bmp); |
MikamiUitOpen | 0:f62ffd3644bf | 31 | } |
MikamiUitOpen | 0:f62ffd3644bf | 32 | |
MikamiUitOpen | 0:f62ffd3644bf | 33 | sdReader.Close(); // ファイルのクローズ |
MikamiUitOpen | 0:f62ffd3644bf | 34 | } |