为什么BitmapFactory.decodeByteArray()返回null?

时间:2014-04-01 16:31:21

标签: android bitmap base64

我的应用程序从DB中逐个读取几个BASE64编码图像。但是对于一些图像(<0.1%),它无法加载。方法BitmapFactory.decodeByteArray()返回null,表示其格式无效。但是当我创建一个带有硬编码罪魁祸首图像的独立应用程序时,它起作用了。现在我有一个大的应用程序,相同的图像没有工作,在我的测试应用程序中,它的工作原理。任何人都可以告诉我为什么上帝的名字会发生这种情况?这是我的代码:

byte[] decodedString = Base64.decode(encodedImage, Base64.DEFAULT);
Bitmap setBMPPath = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
if (setBMPPath != null) {
    qImage.setImageBitmap(setBMPPath);
}

我可以使用其他方法将字节数组转换为Bitmap吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试添加Base64.NO_WRAP:

byte[] decodeResponse = Base64.decode(base64Image, Base64.DEFAULT | Base64.NO_WRAP);
Bitmap bitmap = BitmapFactory.decodeByteArray(decodeResponse, 0, decodeResponse.length);

希望这有助于某人。