2013-01-04 48 views
0

WhatsApp在共享时创建图像的重复副本。尽管图像的分辨率相同,但原始图像的MD5校验和与其复制方式不同。为什么是这样?如何让我的应用程序认识到这是一个重复的图像。Duplicate具有不同的MD5校验和

我试过MD5和Sha-1,两种算法都为这两个图像生成不同的校验和。

回答

1

听起来像元数据可能存在差异 - 例如,在制作副本时,WhatsApp服务器可能已更改时间戳。

我建议你检索图像的像素数据并运行你的校验和。您可以使用Bitmap.getPixels()方法。例如:myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());

请记住,仅仅因为校验和是相同的,并不一定意味着图像是!如果您的校验和匹配,则必须对数据进行逐个元素的比较,以确保图像完全相同。

编辑: 有如何平等here做逐像素测试一个很好的例子。请注意,如果您使用API​​ 12+,则可以使用Bitmap.sameAs()方法!

+0

你能把我连接到一个可能的例子吗?我已经搜索了几次。他们都没有工作。 –

+0

@Torcellite哪一部分特别?如果您认为自己正在进行比较,但图像仍然不同,那么WhatsApp服务器实际上是否正在更改图像数据?例如改变压缩或编码水印。 – vaughandroid

+0

图像没有改动。可能是元数据。 我想知道如何逐个像素地比较图像。 –