将base64转换为图像并在gridview中显示

时间:2013-04-17 11:49:24

标签: c# asp.net

我正在开发一个从网络服务获取数据的网站。我们的Android开发人员给了我一个像这样的Base64字符串。

  

iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAABHNCSVQICAgIf。 。 。 。 。 。 。 。 。 。

我将此字符串保存到我的数据库中。我想知道如何将其转换为图像。

2 个答案:

答案 0 :(得分:5)

以下是适合您的解决方案

public Image Base64ToImage(string base64String)
{
  // Convert Base64 String to byte[]
  byte[] imageBytes = Convert.FromBase64String(base64String);
  MemoryStream ms = new MemoryStream(imageBytes, 0,imageBytes.Length);

  // Convert byte[] to Image
  ms.Write(imageBytes, 0, imageBytes.Length);
  Image image = Image.FromStream(ms, true);
  return image;
}

答案 1 :(得分:2)

如果你在网页上显示它(你添加了asp.net作为你的标签之一,所以我假设这是用于网页)你可以作弊并这样做:

<img src="data:image/png;base64,<%=base64String%>"/>

这假设图像是png,否则将其更改为image / jpg或其他任何内容。

缺点是这会停止缓存图像。所以在实践中,@ Sachin的解决方案更实用。如果你想避免出于任何原因保存文件(或者只是想要'我现在需要它来解决'),这种方式很简洁。