Java Compare one BufferedImage to Another

bufferedimage, java

Solution

The obvious solution would be to compare, pixel by pixel, that they are the same.

boolean bufferedImagesEqual(BufferedImage img1, BufferedImage img2) {
    if (img1.getWidth() == img2.getWidth() && img1.getHeight() == img2.getHeight()) {
        for (int x = 0; x < img1.getWidth(); x++) {
            for (int y = 0; y < img1.getHeight(); y++) {
                if (img1.getRGB(x, y) != img2.getRGB(x, y))
                    return false;
            }
        }
    } else {
        return false;
    }
    return true;
}

Problem

I need to compare two buffered images to see if they are the exact same. Simply saying if that equals that doesn't work. My current method is ``` { Raster var1 = Img1.getData(); Raster var2 = Img2.getData(); int Data1 = (var1.getDataBuffer()).getSize(); int Data2 = (var2.getDataBuffer()).getSize(); if (Data1 == Data2) { return true; } else { return false; } } ``` But that doesn't really work. What other more reliable way is there?

Original source

Related problems