gpt4 book ai didi

java - 在Java中将base64字符串转换为图像

转载 作者:IT老高 更新时间:2023-10-28 21:04:30 26 4
gpt4 key购买 nike

我有一张图片通过 JSON 字符串发送给我。我想将该字符串转换为我的 android 应用程序中的图像,然后显示该图像。

JSON 字符串如下所示:

"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVI..."

注意:我用 ... 截断了字符串

我有一个(我认为)将字符串转换为图像的函数。我这样做对吗?

public Bitmap ConvertToImage(String image){
try{
InputStream stream = new ByteArrayInputStream(image.getBytes());
Bitmap bitmap = BitmapFactory.decodeStream(stream);
return bitmap;
}
catch (Exception e) {
return null;
}
}

然后我尝试像这样在我的 android Activity 上显示它

String image = jsonObject.getString("barcode_img");         
Bitmap myBitmap = this.ConvertToImage(image);
ImageView cimg = (ImageView)findViewById(R.id.imageView1);

//Now try setting dynamic image
cimg.setImageBitmap(myBitmap);

但是,当我这样做时,什么都没有出现。我在 logcat 中没有任何错误。我做错了什么?

谢谢

最佳答案

我担心你只需要解码 base64 字符串来获取图像字节,所以在你的

"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVI..."

string,你必须得到data:image\/png;base64,之后的数据,所以你只得到图像字节然后解码:

String imageDataBytes = completeImageData.substring(completeImageData.indexOf(",")+1);

InputStream stream = new ByteArrayInputStream(Base64.decode(imageDataBytes.getBytes(), Base64.DEFAULT));

这是一个代码,因此您可以了解它是如何工作的,但是如果您收到一个 JSON 对象,则应该以正确的方式完成:

  • 将 JSON 字符串转换为 JSON 对象。
  • 提取 data 键下的字符串。
  • 确保以 image/png 开头,以便您知道是 png 图像。
  • 确保包含 base64 字符串,这样你就知道数据必须被解码。
  • base64字符串后的数据解码得到图片。

关于java - 在Java中将base64字符串转换为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506428/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com