0

WhatsApp 在共享时会创建图像的重复副本。虽然图像的分辨率相同,但原始图像和副本的 MD5 校验和是不同的。为什么是这样?我如何让我的应用程序意识到这是一个重复的图像。

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

4

1 回答 1

1

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

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

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

编辑:这里 有一个很好的例子来说明如何对相等性进行逐像素测试。请注意,如果您使用 API 12+ ,则可以使用Bitmap.sameAs()方法!

于 2013-01-04T09:29:09.630 回答