在屏幕的一个区域中搜索指定颜色所在的像素.
PixelSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Fast|RGB]
OutputVarX/Y | 变量名称, 用于保存首个匹配 ColorID 的像素的 X 和 Y 坐标(如果没发现匹配, 此变量被置空). 如果没有使用 CoordMode, 默认情况下坐标相对于活动窗口. 这两个参数中其中一个或两个可以为空, 此时使用 ErrorLevel (见后面) 可以确定是否找到匹配. |
X1, Y1 | 需要搜索的矩形区域左上角的 X 和 Y 坐标, 可以为 表达式. 如果没有使用 CoordMode, 默认情况下坐标相对于活动窗口. |
X2, Y2 | 需要搜索的矩形区域右下角的 X 和 Y 坐标, 可以为 表达式.如果没有使用 CoordMode, 默认情况下坐标相对于活动窗口. |
ColorID | 需要搜索的十进制或十六进制颜色 ID, 使用蓝绿红 (BGR) 格式, 可以为 表达式. 颜色 ID 可以使用 Window Spy (可以从托盘菜单打开) 或 PixelGetColor 确定. 例如: 0x9d6346 |
Variation | 一个介于 0 和 255 (包含的) 之间的数字, 用于表示此颜色红/绿/蓝通道强度在每个方向上允许的渐变值 (可以为 表达式). 此参数用于需要寻找的颜色渐变值可能变化时. 如果指定 255 为浮动的渐变值, 将匹配所有颜色. 默认渐变值为 0. |
Fast|RGB | 此参数可以包含单词 Fast, RGB, 或同时包含两个 (同时包含时它们之间请用空格分隔即 Fast RGB). Fast: 使用快速的搜索方法, 在大多数情况下此方法可以明显减少搜索时消耗的 CPU 时间. 尽管此方法支持颜色深度低至 8位 (256色), 但在 24位或 32位颜色深度下此快速方法执行的更好. 如果屏幕的颜色深度为 16 位或更低, Variation 参数在慢速模式和快速模式的行为可能会有轻微的差异. 最后, 快速模式按行搜索屏幕(从上往下)而不是按列. 因此,如果屏幕上有多个匹配的像素, 快速模式可能找到一个和慢速模式不同的像素. RGB: 把 ColorID 解释为 RGB 值而不是 BGR. 即交换了其中的红色和蓝色的通道. |
如果在指定的区域找到指定的颜色, 则 ErrorLevel 被设置为 0, 没有找到则设置为 1, 而如果在命令执行过程中遇到问题使搜索无法进行则设置为 2.
搜索的目标区域必须是可见的; 换句话说, 无法搜索隐藏在其他窗口背后的窗口区域.而在鼠标指针下方的像素颜色通常可以被检测出来.例外情况是游戏的指针, 在大多数情况下它会隐藏在它下方的任何像素.
对于慢速模式: 默认情况下从区域左上角的像素开始搜索, 在垂直方向上检查下面所有像素以寻找匹配. 如果没有找到匹配, 继续往右逐列搜索, 直至找到一个匹配的像素. 通过交换参数列表中 X1 和 X2 的位置, 可以使默认的从左往右搜索反向进行. 换句话说, 如果 X1 大于 X2, 搜索从右往左进行, 从 X1 开始. 同样, 如果 Y1 大于 Y2, 则从区域底部而不是顶部开始搜索每列像素. 最后, 当需要搜索的目标区域很大而且快速的重复搜索, 这可能会占用大量的 CPU 时间. 为了减轻这种情况, 请保持目标区域的大小为最小值.
PixelGetColor, ImageSearch, CoordMode, MouseGetPos
PixelSearch, Px, Py, 200, 200, 300, 300, 0x9d6346, 3, Fast if ErrorLevel MsgBox, That color was not found in the specified region. else MsgBox, A color within 3 shades of variation was found at X%Px% Y%Py%.