Code
/**
*Rouge par pixel,Green,Affirmez la valeur d'élément de la couleur Bleu.
*
*Différence de valeurs d'éléments(±)Augmente ou diminue 5%Est autorisée.
*/
static void assertImages(BufferedImage actual, BufferedImage expected) {
assertThat("La taille de l'image comparée est différente (verticale)", actual.getHeight(), is(expected.getHeight()));
assertThat("La taille de l'image comparée est différente (horizontale)", actual.getWidth(), is(expected.getWidth()));
//Pourcentage tolérer l'erreur
final int ACCEPTABLE_PERCENTAGE = 5;
//Erreur de tolérance de valeur numérique(±)
final int ACCEPTABLE_DIFFERENCE = 255 * ACCEPTABLE_PERCENTAGE / 100 / 2;
int width = actual.getWidth();
int height = actual.getHeight();
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
Color actualColor = new Color(actual.getRGB(x, y));
Color expectedColor = new Color(expected.getRGB(x, y));
assertThat("Les valeurs des éléments de couleur sont acceptables(±" + ACCEPTABLE_PERCENTAGE + "%)Au-delà: rouge",
(double) actualColor.getRed(),
is(closeTo((double) expectedColor.getRed(), ACCEPTABLE_DIFFERENCE)));
assertThat("Les valeurs des éléments de couleur sont acceptables(±" + ACCEPTABLE_PERCENTAGE + "%)Au-delà: vert",
(double) actualColor.getGreen(),
is(closeTo((double) expectedColor.getGreen(), ACCEPTABLE_DIFFERENCE)));
assertThat("Les valeurs des éléments de couleur sont acceptables(±" + ACCEPTABLE_PERCENTAGE + "%)Au-delà: bleu",
(double) actualColor.getBlue(),
is(closeTo((double) expectedColor.getBlue(), ACCEPTABLE_DIFFERENCE)));
}
}
}