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

时间:2012-06-12 23:43:42

标签: android image decode

我从.net网络服务获得了一个用base64Binary编码的图像,当我尝试用解码后的字符串创建一个位图时,我得到了null。知道为什么吗?谢谢你的帮助! :d

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

  2. 我在使用bitmapfactory之前使用Android原生Base64库对其进行解码

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

  4. 这是Android 2.2 google API

  5. 以下是代码:

    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
    

    这就是decodeString的样子:

    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
    

1 个答案:

答案 0 :(得分:1)

我想我想通了。

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