PixelGetColor
获取指定的 x, y 坐标处像素的颜色。
PixelGetColor, OutputVar, X, Y [, Alt|Slow|RGB]
参数
- OutputVar
用来保存十六进制的蓝绿红 (BGR) 格式的颜色 ID 的变量名. 例如, 紫色的颜色 ID 为 0x800080, 因为其蓝色和红色成分的强度为 80, 而绿色成分的为 00.
- X, Y
目标像素的 X 和 Y 坐标, 可以为 表达式. 坐标相对于活动窗口, 除非曾使用 CoordMode 改变了这个设置.
- Alt|Slow|RGB
此参数可以包含零个或多个下列单词. 如果含有多个单词,则它们之间使用空格分隔(例如
Alt RGB
)。Alt [v1.0.43.10+]: 使用另一种方法获取颜色, 当在特殊类型的窗口中正常的方法获取到无效或错误的颜色时, 应考虑使用这种方法. 此方法比正常方法大约慢 10%.
Slow [v1.0.43.10+]: 使用一种更精细复杂的方法获取颜色, 在某些全屏应用程序中其他方法失败时, 此方法可能有效. 此方法比正常方法大约慢三倍. 注: Slow 方法优先于 Alt, 所以此时不需要指定 Alt.
RGB: 获取 RGB 格式的颜色值而不是 BGR 格式. 即交换了其中的红色和蓝色的成分. 此选项可用在要让获取的颜色适用于 WinSet、Gui、Progress 和 SplashImage 的时候。
ErrorLevel
[v1.1.04+] 此命令失败时会抛出异常. 想了解更多信息, 请参阅 运行时错误.
如果遇到问题则 ErrorLevel 被置为 1, 否则为 0.
备注
像素必须是可见的; 换句话说, 无法获取隐藏在其他窗口背后的窗口的像素颜色. 与之相比, 鼠标光标下方的像素颜色通常可以检测出来. 例外情况是游戏的指针, 在大多数情况下它会隐藏在它下方的任何像素.
使用 Window Spy (从托盘图标菜单打开) 或参阅本页底部的示例可以确定当前屏幕上的颜色.
已知限制:
- 在 部分透明 或其中某种颜色透明 (TransColor) 的窗口中实际获取的是它后面窗口的颜色而不是它自己的颜色 (即我们在屏幕上看到的颜色).
- 在某些应用程序中 PixelGetColor 可能得不到准确的结果. 如果发生这种情况, 请尝试在最后一个参数中指定单词 Alt 或 Slow.
相关
PixelSearch, ImageSearch, CoordMode, MouseGetPos
示例
^!z:: ; Control+Alt+Z 热键. MouseGetPos, MouseX, MouseY PixelGetColor, color, %MouseX%, %MouseY% MsgBox The color at the current cursor position is %color%. return