我从.net网络服务获得了一个用base64Binary编码的图像,当我尝试用解码后的字符串创建一个位图时,我得到了null。知道为什么吗?谢谢你的帮助! :d
我确定响应字符串不为空,我测试了它,它的长度是28000.我还用在线解码器检查了它的内容,它返回了我需要的图像。
我在使用bitmapfactory之前使用Android原生Base64库对其进行解码
我使用Ksoap2获取Image base64字符串
这是Android 2.2 google 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
这就是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
答案 0 :(得分:1)
我想我想通了。
看起来响应基础64字符串是TIFF图像,并且android不支持该格式,因此Factory不会将其识别为图像并停止解码过程。