2つの画像の異なる部分を見つける

2つの画像の大きさは同じっていう前提。

final BufferedImage image1 = ImageIO.read(file1);
final BufferedImage image2 = ImageIO.read(file2);
final BufferedImage delta = new BufferedImage(image1.getWidth(), image1.getHeight(), image1.getType());
for (int y = 0; y < image1.getHeight(); y++) {
    for (int x = 0; x < image1.getWidth(); x++) {
        final int[] image1Pixel = image1.getRaster().getPixel(x, y, (int[]) null);
        final int[] image2Pixel = image2.getRaster().getPixel(x, y, (int[]) null);
        if (Arrays.equals(image1Pixel, image2Pixel)) {
            delta.getRaster().setPixel(x, y, image1Pixel);
        } else {
            delta.getRaster().setPixel(x, y, new int[] { 0, 255, 0, 255 });
        }
    }
}
ImageIO.write(delta, "png", outFile);