C# asp.net显示字节数组中的图像

C# asp.net显示字节数组中的图像,c#,asp.net,image,linq,C#,Asp.net,Image,Linq,我有一个字节数组,并试图从中显示图像 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 cl

我有一个字节数组,并试图从中显示图像

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引用似乎没有改变任何事情。我错过什么了吗?顺便说一句,我很确定我正确地从数据库中获取了字节数组。

您可能想到的是
System.Drawing.Image
;该类支持
FromStream

向您展示了在WebForms中加载动态图像的几种方法


最简单的方法可能是创建一个单独的aspx页面,在此处加载图像,并使用
Response.BinaryWrite
将其保存到响应流中,然后在正在处理的页面中创建一个
image
控件,该控件使用新的aspx页面作为其图像URL。如果需要加载各种图像,您当然可以使用查询字符串参数。

另一种方法是将字节数组转换为基64字符串,并将其分配给
笠美的
ImageUrl
属性,如下所示:

rImage.ImageUrl = "data:image;base64," + Convert.ToBase64String(arr);
您不需要中间
内存流
或单独的页面…如果字节数组采用浏览器支持的图像格式,它将显示出来。祝你好运

<img id="img" runat="server" alt=""/>

您不需要
内存流

你不应该使用ASPX页面。这些都是用于Web表单页面的,使用它们来做这种事情很不方便。您可以为此编写处理程序或通用处理程序(.ashx)。
string base64String = Convert.ToBase64String(arr, 0, arr.Length);
img.Src = "data:image/jpg;base64," + base64String;