Android:BitmapFactory.decodeByteArray返回空解码base64图像



我从.net Web服务获得以base64Binary编码的图像,当我尝试使用解码的字符串创建位图时,我得到null。知道为什么吗?感谢您的帮助!:D

  1. 确定响应字符串不为空,我测试了它,它的长度为 28000。我还使用在线解码器检查了它的内容,它返回了我需要的图像。

  2. 在使用位图工厂之前,我正在使用Android本机Base64库对其进行解码

  3. 我使用 Ksoap2 获取 Image base64 字符串

  4. 这是安卓2.2谷歌API

代码如下:

String serverResponse = "" + result.get(0);
byte[] decodedString = Base64.decode(serverResponse, Base64.DEFAULT);
imgMap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

ImgMap 是位图,它总是为空,我做错了什么?

我得到一个日志条目,上面写着:

TAG: SKIA     
TEXT: ---SkImageDecoder:: Factory returned null

这就是解码字符串的样子:

06-13 03:09:54.957: D/CODED(491): SIZE: 22486
06-13 03:09:55.008: D/CODED(491): Content: first 200 positions of the array: 737342012400068796785786984327110111410997110121068656783328411111110810710511632737305048495058485358505132494858515158525200000000000000000000000000000000000000000000000000000000000000000250-20401000000001301000-22900113010003930021301000100031301000400061301000000071
我想

我想通了。

看起来响应基础 64 字符串是 TIFF 图像,而 android 不支持该格式,因此工厂不会将其识别为图像并停止解码过程。

最新更新