2012-02-13 4 views
-1

У меня есть этот код:найти последовательность пикселей по цвету

{ 
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

Должны ли пиксели быть в горизонтальном, левом-правом расположении или будет ли строка из 5 совпадающих пикселей? –

+0

Горизонтальный слева направо - это то, что им нужен – user1179522

ответ

0

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

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 
    } 
} 

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

+0

, но как бы я положил в 5 пикселей, я хочу, чтобы он нашел, что у них проблемы с – user1179522

+0

ой, вы хотите 5 пикселей, но, возможно, другого цвета в каждом пикселе? – goat

+0

да на самом деле каждый пиксель будет другого цвета, я ищу изображение на экране. изображение имеет пять различных пикселей подряд, и это то, что им ищет – user1179522

Смежные вопросы