为什么我在下面的代码中得到错误的基本64字符串?

时间:2014-04-30 16:14:30

标签: android

我有以下代码将位图解码为base64字符串。

for(String e:paths)
              {
                  String usepath=e.replace("%", "//");
                  Bitmap m=BitmapFactory.decodeFile(usepath);
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();  
                    m.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
                    byte[] b = baos.toByteArray();  
                    String bb= Base64.encodeToString(b, Base64.NO_WRAP);
                    Log.e("Photo", bb);

字符串usepath打印如

/mnt/sdcard/DCIM/Camera/IMG_20140424_132023.jpg

我已将图像保存在我的电脑上,并使用在线工具将其解码为base64,我有一个大约650kb的长串(上传到谷歌应用引擎后)但我使用上面的代码得到的字符串就像10 %的,并且不显示图像。

但我可以使用相同的图像路径来设置图像视图,它的工作方式如下

 Bitmap bm= BitmapFactory.decodeFile(usepath);
          holder.imageItem.setImageBitmap(bm);

base64编码失败的原因是什么?

罗纳德

1 个答案:

答案 0 :(得分:0)

尝试将标记 Base64.URL_SAFE 添加到编码方法中。

另请注意,如果图像太大,您可能无法获得String中所需的所有字节(您可以尝试在发送内容之前写入临时文件)。