Android位图工厂在尝试读取解码后的Base64 jpeg时返回null

3

我使用HTTP GET调用从Web服务检索了一个jpeg图像,现在需要在ImageView中显示它,但是它是以Base64编码的。因此,我使用以下代码进行转换:

byte[] bytes = Base64.decode(imageStringInBase64, Base64.DEFAULT);
Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

然而,我遇到了错误:--- SkImageDecoder::Factory returned null

当在控制台中打印imageStringInBase64时,它看起来像这样:

data:image/jpeg;base64,/9j/4AAQ ... a bunch of stuff ... /B6TTbssco

尝试将其保存到SD卡上,然后查看是否可以在计算机或图库应用程序中打开。 - Warpzit
1
如果imageStringInBase64中的值是data:image...,那么它将无法工作。您只需要base64编码的数据(最后一个逗号之后的所有内容)。 - dmon
@dmon 就是这样。我分割了字符串,使用逗号后面的所有内容,然后它就起作用了。 - Groppe
@dmon,您应该在下面添加您的答案(这是一个答案,而不是评论),然后Groppe可以接受它。这将有助于未来访问者解决此问题。 - David Snabel-Caunt
是的,我不确定字符串的确切值,因此有评论。 :) - dmon
1个回答

5
如果data:image...imageStringInBase64中的值,则无法正常工作。您只需要base64编码数据(最后一个逗号之后的所有内容)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接