Function Reference

PixelSearch

ピクセル長方形から指定された色のピクセルをさがします。

PixelSearch ( left, top, right, bottom, color [, shade-variation [, step [, hwnd]]] )

 

パラメータ

left 長方形の左部座標
top 長方形の上部座標
right 長方形の右部座標
bottom 長方形の下部座標
color 探すピクセルの色(10進数または16進数)
shade-variation [オプション] 赤、緑、青色成分の濃淡の許容度を指定する0から255までの数値。デフォルトは0 (完全一致)。
step [オプション] 全てのピクセルではなく、与えられた1より大きい値おきにスキップした位置のピクセルを調べます(高速化のため)。例えば、2を指定すると1つおきにピクセルをチェックします。デフォルトは1。
hwnd [オプション] 使用されるウィンドウのハンドル

 

返し値

成功 ピクセルの座標が格納された要素数2の配列を返します。(Array[0] = x, Array[1] = y)
失敗 指定された色が見つからなかった場合、@errorを1に設定します。

 

注意

検索方向は次のように変化します:
    左から右 - left < right
    右から左 - right < left
    上から下 - top < bottom
    下から上 - bottom < top
検索する色が検索領域内の特定の場所に頻繁に現れる場合、検索方向を変更するのはよい最適化手法です。 なぜなら検索をもっともよく表れる場所から開始することで検索処理を減らすことができるからです。

一般的な1024 x 768のディスプレイは786432ピクセルあります。PixelSearchは最適化してありますが探査領域を小さくすることでよりはやく結果を得ることができます。

 

関連

PixelChecksum, PixelGetColor, PixelCoordMode (Option)

 


; 0,0-20,300の領域からピュアレッドのピクセルを見つけます
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf


; ピュアレッドまたはピュアレッドからの濃淡度10の赤色のピクセルを見つけます
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf