Egalité entre BuffuredImage
Salut à tous...
Est-ce que la méthode equals de la classe BufferedImage fonctionne bien ? J'essaye de tester l'égalité entre deux captures d'écran, mais ça me retourne toujours faux, sans que mes fenêtres/mon arrière plan/etc n'ait bougé d'un pouce entre les deux captures. C'est pas que j'ai pas envie de jouer au jeu des sept erreurs, m'enfin quand y en a pas...
A titre indicatif, le énième test rapide que je viens de réaliser:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import java.awt.Rectangle;
import java.awt.Robot;
import javax.swing.ImageIcon;
public class Test {
public static void main(String[] args) {
try {
Rectangle rect = new Rectangle(0, 0, 54, 54);
System.out.println(new Robot().createScreenCapture(rect).equals(new Robot().createScreenCapture(rect)));
Robot rob = new Robot(); //A tout hasard...
System.out.println(rob.createScreenCapture(rect).equals(rob.createScreenCapture(rect)));
System.out.println(new ImageIcon(rob.createScreenCapture(rect)).getImage().equals(new ImageIcon(rob.createScreenCapture(rect)).getImage()));
} catch (Exception e) { System.out.println(e); }
}
} |
Me donne le résultat suivant:
Code:
1 2 3 4
| seth@fadreils: java Test
false
false
false |
Ce qui est, vous en conviendrez, assez surprenant. Je vous passe le screenshot (manuel) d'un affichage des deux images en question, mais elles sont à l'oeil parfaitement identiques..