Нахождение последовательности пикселей по цвету - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть этот код:

{
Robot robot = new Robot();
Color inputColor = new Color();


Rectangle rectangle = new Rectangle(0, 0, 1365, 770);

    BufferedImage image = robot.createScreenCapture(rectangle);
    for(int x = 0; x < rectangle.getWidth(); x++) 
    {
        for (int y = 0; y < rectangle.getHeight(); y++) 
        {
            if (image.getRGB(x, y) == inputColor.getRGB()) 
            {
            return 1;
            break;
            }
        }
    }
}

он должен сделать снимок экрана и найти в нем пиксель, указанный в inputColor. Однако требования программы изменились, и теперь ей нужно найти строку длиной 5 пикселей, которая соответствует данной строке. Есть ли простой способ указать это с помощью существующего кода, или мне нужно будет его изменить? Я имею в виду, могу ли я сохранить существующий код и определить inputColor как строку со значениями 5 пикселей, или мне нужно изменить весь алгоритм?

1 Ответ

0 голосов
/ 13 февраля 2012

Я думаю, что-то подобное будет работать. Не самая лучшая эффективность, но это косточка для жевания.

int[] pixels = image.getRGB(0, 0, image.getWidth(), image.getHeight(), null, 0, image.getWidth())) {
for (int i = 0; i < pixels.length; i++) {
    if (Array.equals(search, Array.copyOfRange(pixels, i, i + search.length)) {
        //found it
    }
}

поиск будет массивом целых чисел (ваших цветов).

...