3

Robot 类的方法getPixelColor(int x,int y)究竟是如何工作的?我试过这个代码片段:

try 
{
     Robot robos = new Robot();
}
catch (AWTException e) 
{

}

for (int i = 0; i < 100; i++)
    robos.getPixelColor(0, 0);

System.out.println("fsadf");

在我的 PC 上,这是一个 core 2 duo,执行打印语句需要一秒钟或更短的时间。然而,当我在我的 i3 笔记本电脑上运行相同的代码时,花费了更多时间(大约 2-3 秒)。

这背后的原因是什么?它与屏幕质量或类似的东西有关吗?我怎么解决这个问题?

4

1 回答 1

10

我怎么解决这个问题?

不要使用机器人逐像素获取颜色。使用机器人创建屏幕的 BufferedImage。然后可以使用 BufferedImage 的 getRGB() 方法获取表示像素颜色的 int 值。然后,您可以使用此 int 创建一个颜色对象或直接解析出红色/绿色/蓝色值。

于 2011-08-24T00:14:30.430 回答