您已经有数据库中的字节数组,因此您只需将 字节数组 转换为 Base64 编码字符串。
然后将Base64编码的字符串赋值给asp:Image控件的ImageUrl。
public class Database
{
public byte[] Imagefile { get; set; }
public Database()
{
// PNG Red dot
Imagefile = new byte[]
{
137,80,78,71,13,10,26,10,0,0,0,13,73,72,
68,82,0,0,0,10,0,0,0,10,8,6,0,0,0,141,50,
207,189,0,0,0,4,103,65,77,65,0,0,177,143,
11,252,97,5,0,0,0,9,112,72,89,115,0,0,11,
19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,
73,77,69,7,214,6,1,23,57,40,29,23,87,226,0,
0,0,29,116,69,88,116,67,111,109,109,101,110,
116,0,67,114,101,97,116,101,100,32,119,105,
116,104,32,84,104,101,32,71,73,77,80,239,100,
37,110,0,0,0,93,73,68,65,84,24,211,189,204,
189,13,130,80,0,196,241,31,116,180,236,224,
22,76,224,50,14,224,46,206,193,8,54,38,132,
61,44,77,94,197,217,88,188,16,94,103,184,234,114,
31,127,254,173,110,31,132,203,207,14,29,235,
225,43,92,195,28,94,225,214,196,135,119,40,
225,19,158,117,215,87,163,9,165,202,182,48,
182,136,247,176,132,71,115,116,190,190,12,
146,26,23,123,74,217,138,0,0,0,0,73,69,78,
68,174,66,6,130
};
}
}
protected void Page_Load(object sender, EventArgs e)
{
var db = new Database();
Image1.ImageUrl = string.Concat("data:image/png;base64,",
Convert.ToBase64String(db.Imagefile));
}
网络浏览器支持
截至 2012 年 3 月,以下 Web 浏览器支持数据 URI:
- 基于 Gecko,例如 Firefox、SeaMonkey、XeroBank、Camino、Fennec 和 K-Meleon
- Konqueror,通过 KDE 的 KIO 从属输入/输出系统
- Opera(包括 Nintendo DSi 或 Wii 等设备)基于 WebKit,例如 Safari(包括 iOS)、Android 的浏览器、Kindle 4 的浏览器、Epiphany 和 Midori(WebKit 是 Konqueror 的 KHTML 引擎的衍生产品,但 Mac OS X 不共享 KIO 架构,因此实现不同),以及基于 Webkit/Chromium,例如 Chrome
-
三叉戟
-
Internet Explorer 8:出于安全原因,Microsoft 已限制对某些“不可导航”内容的支持,包括担心嵌入在数据 URI 中的 JavaScript 可能无法被脚本过滤器解释,例如基于 Web 的电子邮件客户端使用的过滤器.在版本 8 中,数据 URI 必须小于 32 KB。[3]仅以下元素和/或属性支持数据 URI:
- 对象(仅限图片)
- img
- 输入类型=图像
- 链接
- 接受 URL 的 CSS 声明,例如 background-image、background、list-style-type、list-style 等。
Internet Explorer 9:Internet Explorer 9 没有 32KB 的限制,支持更多元素。
http://en.wikipedia.org/wiki/Data_URI_scheme#Web_browser_support