java - 尝试使用 base64 编码显示从服务器检索的图像但无法显示正确的图像
问题描述
这些是我的编码和解码方法。
public String encodeBase64(Bitmap bit){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bit.compress(Bitmap.CompressFormat.PNG, 100, baos); // Could be Bitmap.CompressFormat.PNG or Bitmap.CompressFormat.WEBP
byte[] bai = baos.toByteArray();
return Base64.encodeToString(bai, Base64.DEFAULT);
}
public Bitmap decodeBase64(String base64Image){
byte[] data = Base64.decode(base64Image, Base64.DEFAULT);
Bitmap bm;
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inMutable = true;
bm = BitmapFactory.decodeByteArray(data, 0, data.length, opt);
return bm;
}
这是来自位图的编码数据
iVBORw0KGgoAAAANSUhEUgAABLAAAAdcCAYAAAC7T3KrAAAABHNCSVQICAgIfAhkiAAAIABJREFU
eJzswQEBAAAAgJD+r+4ICgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.... etc
但是我从服务器得到的数据看起来像这样
{"type":"Buffer","data":[105,86,66,79,82,119,48,75,71,103,111,65,65,65,... etc
我可以获得纯数据或类型和数据 json 对象。我试图解码两者。当我尝试使用类型和数据进行解码时,它给了我一个空位图,当我解码原始数据时,只有图像不显示,但似乎没有任何崩溃。
我是否需要在解码之前检索所有这些数组编号并将它们转换为字符?我读过其他帖子,听起来很直截了当,只需编码然后解码。
解决方案
推荐阅读
- python - 在 pendulum.parse 中为不明确的日期指定 dst_rule
- c# - 在 VS2017 中创建 control-rsweb-Reportviewer 时出错
- r - 使用 jsonlite 从 R 中的福布斯网站获取 json 时出错
- c# - 如何在没有驱动程序的情况下获取设备的硬件 ID?
- spring - 在主体中更新用户的名字和姓氏
- ios - 按钮单击在 iOS 中不起作用
- sap - 基于登录隐藏维度
- java - 以通用方式根据值返回对象
- angular5 - Angular5 的(点击)事件在 IE9 和 IE10 中不起作用
- openvswitch - openvswitch如何中断数据包?