我正在寻找一种独立于平台的方式来从屏幕上读取颜色,并通过鼠标和键盘操作模拟用户输入。我以前一直在使用java.awt.robot
,但是在过去的两年中,它已经开始在OSX中报告错误的颜色(其他操作系统似乎可以获得准确的颜色),如this question中所述。
我正在寻找此错误的解决方法或任何其他提供此功能的库/语言。
使用下面相当简单的代码可以证明这个问题。
public void printColorAtCoordinate(int x, int y)
{
Color color;
color = robot.getPixelColor(x, y);
System.out.println("RGB: " + Integer.toHexString(color.getRGB()));
}
它似乎可以获得一些正确的颜色,例如0x000000
,0xffffff
,0x0000ff
,0xff0000
,但不会报告0x00ff00
之类的其他颜色作为ff22ff00
(而不是ff00ff00
)。大多数颜色至少少量。