返回介绍

Function PixelSearch

发布于 2020-03-05 18:21:28 字数 2055 浏览 1553 评论 0 收藏 0

PixelSearch

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

PixelSearch ( 左侧, 上方, 右侧, 下方, 颜色 [, 色差] [, 跳进]] )

参数

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

返回值

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

注意

搜索动作将从上到下,从左到右执行,并且返回首个匹配的象素的坐标。

旧版的 AutoIt(v3.0.102 之前)使用的是 BGR 格式的颜色值,而新版的则默认使用 RGB 格式,您可以使用 ColorMode 选项修改这一设置。

在某个区域中搜索匹配象素是非常耗时的,因此请使用尽可能小的区域以减轻CPU负荷。

相关

ColorMode (选项) , PixelChecksum, PixelGetColor, PixelCoordMode (选项)

示例


; 在区域 0,0-20,300 中搜索纯红象素
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )
If Not @error Then
MsgBox(0, "X 和 Y 分别是:", $coord[0] & "," & $coord[1])
EndIf


; 搜索纯红或与纯红偏差不超过10个单位的象素
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )
If Not @error Then
MsgBox(0, "X 和 Y 分别是:", $coord[0] & "," & $coord[1])
EndIf


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文