函数参考


PixelSearch

在指定矩形区域中搜寻与指定颜色值匹配的象素(并返回第一个匹配的象素的坐标).

PixelSearch ( 左侧, 顶部, 右侧, 底部, 颜色 [, 色差 [, 步进 [,句柄]]] )

参数

左侧 矩形区域左侧的坐标.
顶部 矩形区域顶部的坐标.
右侧 矩形区域右侧的坐标.
底部 矩形区域底部的坐标.
颜色 要搜索的颜色值(十进制或十六进制皆可).
色差 [可选参数] 一个介于0到255之间的数值,用以指定允许的颜色偏差范围.默认值为0(表示完全匹配).
步进 [可选参数] 默认情况下每个象素都要校验一次,而此参数可跳过指定数量的象素才校验(可提升执行速度).例如,数值2表示每隔一个象素才校验一次.默认值为 1.
句柄 [可选参数] 目标窗口的窗口句柄.

返回值

成功: 返回一个含有两个元素的数组,分别储存着指定象素的坐标(Array[0] = x , Array[1] = y)
失败: 把 @error 设为 1,说明指定的颜色未被发现.

注意/说明

搜索方向将为下方值:
    从左到右 - 左<右
    从右到左 - 右<左
    从上到下 - 上<下
    从下到上 - 下<上
修改搜索方向可以为频繁搜索进行优化.

记住, 在典型的显示器中 1024 x 768 分辨率有 786432 个像素. 虽然 PixelSearch 被优化过, 减小搜索区域能帮助加快搜索速度.

相关

PixelChecksum, PixelGetColor, PixelCoordMode (Option)

示例/演示


; Find a pure red pixel in the range 0,0-20,300
Local $coord = PixelSearch(0, 0, 20, 300, 0xFF0000)
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf


; Find a pure red pixel or a red pixel within 10 shades variations of pure red
$coord = PixelSearch(0, 0, 20, 300, 0xFF0000, 10)
If Not @error Then
    MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf