我在我的Android应用程序中收到Base64编码的字符串,并将其转换为位图,如下所示:
final String base64Image = getPicResponse.getString(GETPIC_PARAM_BASE64IMAGE);
final byte[] decodedString = Base64.decode(base64Image, Base64.DEFAULT);
Bitmap decodedByteBitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
有时 decodedByteBitmap
是有效的位图,有时它是null . 在尝试查找模式时,我打印以下内容:
DataUtils.log("In GcmIntentService - Received image length is: " + base64Image.length());
当使用2个测试图像时,我注意到当字符串较长时它会失败 . 例如,它将用于字符串长度465,072,但是对于字符串长度672,412将失败 .
BitmapFactory.decodeByteArray
是否有输入大小限制我不知道?如果是这样,我还有什么方法可以将Base64编码的位图转换为位图?
文档(http://developer.android.com/reference/android/graphics/BitmapFactory.html)只提及它返回 null
,如果它可以't be decoded, but don' t给出任何其他信息 .
谢谢