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秒)。
这背后的原因是什么?它是否与屏幕质量或类似的东西有关?我该如何解决这个问题?
答案 0 :(得分:9)
我该如何解决这个问题?
不要使用机器人逐个像素地获取颜色。使用Robot创建一个屏幕的BufferedImage。然后,您可以使用BufferedImage的getRGB()方法获取表示像素颜色的int值。然后,您可以使用此int创建颜色对象,或直接解析红色/绿色/蓝色值。