我花了几个小时试图弄清楚如何做到这一点。我已经在stackoverflow和文档上发布了帖子。
我有一个android.graphics.Bitmap对象,我需要得到它的md5总和。在我想验证总和的时候,它还没有保存到文件系统中。我已经看到了几种为java.io.File对象执行此操作的方法。我只需要一个接收Bitmap对象的函数,并将hex md5 sum作为String返回。
这可能已在某个地方得到解决,但如果是这样的话,我一直无法理解它或从中推断出如何做到这一点。
方法的资源越少,当然就越好。
答案 0 :(得分:9)
获取位图的字节以计算md5。
Bitmap bm = ... // your bitmap
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object
byte[] bitmapBytes = baos.toByteArray();
所以你现在有字节数组。您可以在android here中找到如何获取字节数组的md5哈希。
答案 1 :(得分:0)
我不是Android开发人员,但我在API参考(http://developer.android.com/reference/android/graphics/Bitmap.html)中看到有以下方法:
所以你可以创建一个所需大小的数组,然后读取所有像素,并将数组转换为byte []。
然后从它计算md5总和应该不是问题。