Как работает метод getPixelColor (int x, int y) Робота? - PullRequest
3 голосов
/ 24 августа 2011

Как именно метод getPixelColor(int x,int y) из класса Robot работает? Я попробовал этот фрагмент кода:

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

}

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

System.out.println("fsadf");

на моем ПК, который является дуэтом Core 2, и выполнение инструкции печати заняло одну секунду или меньше. Однако, когда я запустил этот же код на своем ноутбуке, который является ядром i3, это заняло гораздо больше времени (около 2-3 секунд).

В чем причина этого? Это связано с качеством экрана или что-то в этом роде? Как я могу решить эту проблему?

1 Ответ

9 голосов
/ 24 августа 2011

как я могу решить эту проблему?

Не используйте Робота, чтобы получать цвета попиксельно. Используйте робота для создания BufferedImage экрана. Затем вы можете использовать метод getRGB () объекта BufferedImage, чтобы получить значение int, представляющее цвет пикселя. Затем вы можете создать объект Color с помощью этого int или напрямую разобрать значения красного / зеленого / синего.

...