Я пытаюсь получить небольшой фрагмент изображения на экране и прочитать любой пиксель, чтобы сравнить другие пиксели. Код для получения изображения экрана:
Rectangle captureSize = new Rectangle(x, y, height, width);
BufferedImage image = robot.createScreenCapture(captureSize);
И, чтобы прочитать пиксель за пикселем, я использовал
for (int y = 0; y < image.getHeight(); y = y + 1) {
for (int x = 0; x < image.getWidth(); x = x + 1) {
color = image.getRGB(x, y);
// Some methods etc
{
{
Однако, когда я запустил его, я был в шоке. Потому что createScreenCapture
заняло около 40 мс , а использование getRGB
каждого пикселя заняло около 350 мс , что очень неэффективно для создания приложения для 60 кадров в секунду. Кстати, мое изображение имеет размер 800x400 пикселей. Я не пробовал
rgbArray = image.getRGB(startX, startY, w, h, rgbArray,offset, scansize) ;
метод, потому что я не знаю, насколько он эффективен, и переупорядочить мой код будет немного сложно. Так что, любая помощь будет оценена.