我在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
是有效的位图,有时它是空的。在尝试查找模式时,我打印以下内容:
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
,但不提供任何其他信息。
由于