compare two images in android

1. Check that the height matches, if not return false. Then, check if the width matches, and if not, return false. Then check each pixel until you find one that doesn’t match. When you do, return false. If every pixel matches, return true.

Pseudocode:

bool imagesAreEqual(Image i1, Image i2)
{
    if (i1.getHeight() != i2.getHeight()) return false;
    if (i1.getWidth() != i2.getWidth()) return false;

    for (int y = 0; y < i1.getHeight(); ++y)
       for (int x = 0; x < i1.getWidth(); ++x)
            if (i1.getPixel(x, y) != i2.getPixel(x, y)) return false;

    return true;
}

in reality, you probably want to treat the image as a two dimensional array if you can, and just compare bytes. I don’t know the Android image API, but getPixel might be slow.

2. maybe you convert the images in to byte64 Strings and then compare them.

3.**OpenCV lib for Android :
have to functions for images compression

**a. Core.absdiff() b. Core.compare()

for more details see comparing two images

Leave a Comment