2012-06-13 4 views
2

Я пытаюсь сделать два скриншота с разницей в 6 секунд, чтобы увидеть, есть ли какие-то изменения на веб-сайте.Сравнение двух скриншотов не работает правильно - java

Но мой код говорит мне, что скриншоты всегда разные, даже если я тестирую его без каких-либо изменений на экране.

что я делаю неправильно?

Toolkit toolkit = Toolkit.getDefaultToolkit(); 
Dimension screensize = toolkit.getScreenSize(); 
Rectangle rectangle = new Rectangle(0,0,screensize.width,screensize.height); 

Robot robot = new Robot(); 
BufferedImage image1 = robot.createScreenCapture(rectangle); 
System.out.println("screenshot "+i+""); 
Thread.sleep(6000); 
BufferedImage image2 = robot.createScreenCapture(rectangle); 
System.out.println("screenshot "+(i+10)+""); 

int x1 = image1.getWidth(); 
    int x2 = image2.getWidth(); 
    if (x1 != x2) { 
     System.out.println("Widths are different: " + x1 + " != " + x2); 
     return; 
    } 

    int y1 = image1.getHeight(); 
    int y2 = image2.getHeight(); 
    if (y1 != y2) { 
     System.out.println("Heights are different: " + y1 + " != " + y2); 
     return; 
    } 

    for (int x = 0; x < x1; x++) { 
     for (int y = 0; y < y1; y++){ 
      int p1 = image1.getRGB(x, y); 
      int p2 = image2.getRGB(x, y); 
      if (p1 != p2) { 
       System.out.println("Pixel is different at x/y " + x + "/" + y + ": " + p1 + " != " + p2); 
       return; 
      } 
     } 
    } 

    System.out.println("Images are identical"); 
+4

В какой части код отличается от других? У вас есть довольно подробное сообщение ... – Thilo

+0

в блоке if (p1! = P2). Пиксель отличается от x/y ..... , даже если на экране нет изменений –

+1

@EmrahKarakoc Какие значения x/y? Это должно помочь вам сравнить изображения. Как сказал Тило может быть часы или что-то еще –

ответ

5

Я пробовал свой код, и мой пиксель отличается тем, что мигает курсор в консоли Eclipse.

Тогда у меня была проблема с анимированной иконкой (Process Explorer в панели задач)

Наконец сказал изображение идентично.

Примечание: мышь не является частью вещи:

Создает изображение, содержащее пиксели для чтения с экрана. Это изображение не включает курсор мыши.

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