I am using this to compare to BufferedImage
private boolean compareImages(BufferedImage actualImage, BufferedImage expectedImage) {
for (int x = 0; x < expectedImage.getWidth(); x++) {
for (int y = 0; y < expectedImage.getHeight();y++) {
if (actualImage.getRGB(x, y) != expectedImage.getRGB(x, y)) {
return false;
}
}
}
return true;
}
It works when image type is PNG, but doesn't work when image type is JPEG/JPG
Here is how i have tried to run this code :-`
BufferedImage resizedImage = Scalr.resize(originalImage,50,50);
ImageIO.write(resizedImage,new File("a.jpg"));
BufferedImage bufferedImage = ImageIO.read(new File("a.jpg"));
assertTrue(compareImages(resizedImage, bufferedImage));
This fails for JPG/JPEG and its weird.
PS: I am using this library 'Scalr' to perform resizing of images