Robot的getPixelColor(int x,int y)方法如何工作?

时间:2011-08-23 23:45:00

标签: java time colors pixel awtrobot

the method getPixelColor(int x,int y) from the Robot class究竟是如何运作的?我试过这个代码片段:

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

}

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

System.out.println("fsadf");

在我的电脑上,这是一个核心2组合,执行print语句需要一秒或更短的时间。但是,当我在我的笔记本电脑上运行相同的代码时,这是一个核心i3,它需要更多的时间(大约2-3秒)。

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

1 个答案:

答案 0 :(得分:9)

  

我该如何解决这个问题?

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