asp.net显示来自字节数组的图像
我有一个字节数组,并试图从中显示图像。
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Linq; namespace RealPortableTerminal { public partial class resim : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { PortableTerminalDbEntities entity = new PortableTerminalDbEntities(); byte[] arr = (from b in entity.Sicil where b.Id == 31 select b.Fotograf).First(); Image rImage = null; using (MemoryStream ms = new MemoryStream(arr)) { rImage = Image.FromStream(ms); } } } }
它强调FromStream并说’System.Web.UI.WebControls.Image’不包含’FromStream’的定义。 似乎添加System.Data.Linq引用没有改变任何东西。 我错过了什么吗? 顺便说一下,我很确定我正确地从数据库中获取字节数组。
另一种方法是将您的字节数组转换为基本64字符串并将其分配给rImage
的ImageUrl
属性,如下所示:
rImage.ImageUrl = "data:image;base64," + Convert.ToBase64String(arr);
您不需要中间MemoryStream
或单独的页面…如果字节数组是浏览器支持的图像格式,它将显示。 祝好运。
在代码背后
string base64String = Convert.ToBase64String(arr, 0, arr.Length); img.Src = "data:image/jpg;base64," + base64String;
你不需要MemoryStream
。
您可能正在考虑System.Drawing.Image
; 该类支持FromStream
。
此论坛post向您展示了一些在WebForms中加载动态图像的方法。
可能最简单的方法是创建一个单独的aspx页面,当你在这里加载你的图像并使用Response.BinaryWrite
将它保存到响应流,然后在你正在处理的页面中,创建一个Image
控件,使用新的aspx页面作为其图像URL。 如果需要加载各种图像,您当然可以使用查询字符串参数。
- 为什么AppDomain.CurrentDomain.GetAssemblies()在某些条件下不返回Global.asax中的依赖程序集?
- ASP.NET5 MVC6的模型绑定问题
- 未指定authenticationScheme,并且未找到具有默认身份validation和自定义授权的DefaultChallengeScheme
- 从gridview导出到Excel
- 如何在vs2012中将发布配置文件添加到新的sln?
- 如何在asp.net代码中创建HTML字段集和图例?
- 在asp.net转发器中找不到控件?
- 当visible = false时,asp.net requiredfieldvalidator不工作
- 渲染控件会在.Net 4中生成安全性exception