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

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"); 

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

这背后的原因是什么? 是否与屏幕质量有关? 我怎么解决这个问题?

我怎么解决这个问题?

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