指定位置の色情報を取得します。戻り値は0(#000000)~16777215(#FFFFFF)の間の数値で返されます。指定できる座標の範囲は(x, y) = (0, 0)から(G_SCREEN_W-1, G_SCREEN_H-1)の範囲です。
- 構文
- Integer = PEEKCOLOR( X, Y, RGB指定, クリップボード指定 )
- 引数
- X、Y (Integer)必須
- 座標 X、Y
- RGB指定 (Integer = 0)省略可
- 0
- BGR値にて返す (デフォルト)
- COL_RGB(3)
- RGB値にて返す
- COL_R(4)
- 赤の成分のみを返す
- COL_G(5)
- 緑の成分のみを返す
- COL_B(6)
- 青の成分のみを返す
- クリップボード指定 (#peekcolor = False)省略可
- FALSE
- 画面より(デフォルト)
- TRUE
- クリップボードより
- 戻り値
- 指定位置の色情報BGR値 例) 青:$FF0000、緑:$00FF00、赤:$0000FF、オレンジ:$0080FF、黄:$00FFFFRGB値 例) 赤:$FF0000、緑:$00FF00、青:$0000FF、オレンジ:$FF8000、黄:$FFFF00
使い方
Color値から各成分を求める
AND(論理積)を使うことでColor値から各成分を求めることができます。
以下はカーソル位置の座標のColor値を一度だけ取得し、その値から赤成分、緑成分、青成分を計算で求めるプログラムです。
以下のように各成分毎に取得することもできますが、PEEKCOLOR関数の実行のタイミングで対象座標の色が変化すると正しく取得できない場合もあり得ます。
指定位置の色情報を取得
座標(x, y) = (100, 100)の色情報をColor値で取得します。
- 結果
Color値ではなく各成分で取得したい場合は、colorToRGB関数 (自作関数)もしくはcolorToBGR関数 (自作関数)を使います。
以下はPEEKCOLOR関数で返されたColor値を#RRGGBB形式にする例です。
- 結果
カーソル位置の色情報を吹き出しに表示
カーソル位置の色情報を吹き出しに表示します。
指定座標の色変化を検知
x,yに色変化を検知したい座標を指定し、その座標の色情報を初期値としてcolorに代入します。
以下の例では座標(x, y) = (100, 100)の色情報を取得し、色の変化があるまで待機します。
<ruby>REPEAT文<rt></rt></ruby>の終了条件として最初に取得したcolorと現時点の色情報を比較し、値が変わればループを抜けます。色の変化がない場合無限ループになるので、対策としてESCで強制終了するようにしています。
色変化があった場合ループを抜けメッセージを表示します。
指定座標の色の一致を検知
座標(x,y) = (0, 50)の色がRGB形式で#FFFFFFになるまで待機します。PEEKCOLOR関数はColor値でRGB形式と直接比較できないので、#FFFFFFをColor値に変換してから比較しています。PEEKCOLOR関数をcolorToRGB関数 (自作関数)でRGB形式に揃えて比較することも可能です。
プログラム実行例
カーソル座標と色情報を取得

