在屏幕某个区域中搜索指定颜色所在的像素.
PixelSearch &OutputVarX, &OutputVarY, X1, Y1, X2, Y2, ColorID , Variation
类型: VarRef
存储与 ColorID 匹配的第一个像素的 X 和 Y 坐标的变量的引用(如果没有找到匹配的像素, 则变量为空). 除非使用 CoordMode 来改变坐标, 否则坐标是相对于活动窗口的.
类型: 整数
要搜索的矩形区域的起始角的 X 和 Y 坐标. 坐标相对于活动窗口, 除非曾使用 CoordMode 改变了这个设置.
类型: 整数
搜索的矩形区域的结束角的 X 和 Y 坐标. 坐标相对于活动窗口, 除非曾使用 CoordMode 改变了这个设置.
类型: 整数
要搜索的颜色 ID. 通常用红绿蓝(RGB) 格式的十六进制数表示. 例如: 0x9d6346
. 颜色 ID 可以通过 Window Spy(可从托盘菜单访问) 或 PixelGetColor 来确定.
类型: 整数
介于 0 和 255(包含) 之间的数字, 用于表示每个像素颜色红/绿/蓝通道强度在任一方向上允许的渐变值. 如果所查找的颜色并不总是完全相同的色度, 这个参数很有用. 如果指定 255 为渐变值, 则匹配所有颜色. 默认渐变值为 0.
类型: 整数(布尔值)
如果在指定的区域内找到了指定颜色, 该函数返回 1(true), 如果没有找到, 则返回 0(false).
如果有问题导致函数无法进行搜索, 则抛出 OSError.
要搜索的区域必须是可见的; 换句话说, 不可能搜索隐藏在另一个窗口后面的窗口区域. 相比之下, 鼠标光标下方的像素通常可以被检测到. 游戏中的光标是个例外, 在大多数情况下, 游戏中的光标会隐藏其下方的任何像素.
虽然支持低至 8 位(256-色) 的颜色深度, 但快速模式在 24 位或 32 位颜色中的表现要好得多.
搜索从 X1 和 Y1 指定的坐标开始, 并检查 X1 到 X2 这一行的所有像素是否匹配. 如果在那里没有找到匹配的像素, 则继续向 Y2 逐行搜索, 直到找到匹配的像素.
搜索顺序取决于参数的顺序. 换句话说, 如果 X1 大于 X2, 搜索将从右到左, 从 X1 列开始. 同样, 如果 Y1 大于 Y2, 则将从下往上搜索.
如果要搜索的区域比较大而且搜索频率比较高, 可能会消耗大量的 CPU 时间. 为了缓解这种情况, 要尽量减少区域的大小.
PixelGetColor, ImageSearch, CoordMode, MouseGetPos