取得したイメージは、SetScreenでLCDに再描画できます。
構文
int GetScreen(
int x,
int y,
int width,
int height,
unsigned char* buffer
);
パラメータ
- x
-
[in] 長方形の左端のx座標位置を指定します。
- y
-
[in] 長方形の上端のy座標位置を指定します。
- width
-
[in] 長方形の水平方向の幅を指定します。
- height
-
[in] 長方形の垂直方向の幅を指定します。
- buffer
-
[out] イメージを格納するバッファを指定します。
戻り値
成功したらOKを、それ以外ならばERRORを返します。
解説
設定可能な値は以下の通りです。
1ドットのデータは3バイトで、色データは1バイト毎に、赤、緑、青の順番で並んでいます。
1ドットのデータは、原点から水平方向に順番に並んでいます。 水平方向のデータの終端の次は、垂直方向に1ドット下の左端のデータに続きます。 画面座標の原点は左上です。
Windows bitmapとは座標の原点、および色データの並び順が異なるのでご注意ください。
変数 | 下限 | 上限 |
---|---|---|
x | 0 | DISP_WIDTH - 1 |
y | 0 | DISP_HEIGHT - 1 |
width | 1 | DISP_WIDTH - x |
height | 1 | DISP_HEIGHT - y |
値 | 説明 |
---|---|
DISP_WIDTH | 128 ピクセル |
DISP_HEIGHT | 160 ピクセル |
1ドットのデータは、原点から水平方向に順番に並んでいます。 水平方向のデータの終端の次は、垂直方向に1ドット下の左端のデータに続きます。 画面座標の原点は左上です。
Windows bitmapとは座標の原点、および色データの並び順が異なるのでご注意ください。
必要条件
ヘッダファイル:
lib.hライブラリファイル:
libSTARTUPOPH5000.a
サンプル
#include <stdio.h> #include <stdlib.h> #include "lib.h" void main(void) { int lvIndex; unsigned char *buffer = malloc(DISP_WIDTH * DISP_HEIGHT * 3); FillCircle(DISP_WIDTH/2, DISP_HEIGHT/2, DISP_WIDTH/4, RGB_BLUE); printf("[GetScreen]\n"); if (buffer == NULL){ printf("malloc error\n"); return; } GetScreen(0, 0, DISP_WIDTH, DISP_HEIGHT, buffer); ResetKey(); GotoXY(0, 0); printf("Press to clear\r\n"); while(!kbhit()){ Idle(); } ClearDisplay(); ResetKey(); GotoXY(0, 0); printf("Press to redraw\r\n"); while(!kbhit()){ Idle(); } SetScreen(0, 0, DISP_WIDTH, DISP_HEIGHT, buffer); free(buffer); while(1){ Idle(); } }
最終更新日:2023/01/16