0

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

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

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

  3. 我使用 Ksoap2 来获取图像 base64 字符串

  4. 这是 Android 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

这是decodedString的样子:

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
4

1 回答 1

1

我想我想通了。

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

于 2012-06-14T14:18:11.047 回答