我有以下代码将位图解码为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编码失败的原因是什么?
罗纳德
答案 0 :(得分:0)
尝试将标记 Base64.URL_SAFE 添加到编码方法中。
另请注意,如果图像太大,您可能无法获得String中所需的所有字节(您可以尝试在发送内容之前写入临时文件)。