快速查询以在Image Load上检索二进制图像?

时间:2010-09-21 17:13:03

标签: c# asp.net linq image

有这样的事吗?!

因此,例如,在我的图像加载中,我将以下内容连接到表格,其中“图像”是数据的二进制图像集。

protected void Image1_Load1(object sender, EventArgs e)
    {
         myent logo = new myent();

        var query = (from p in logo.tblLogoes
                    where p.Id == id && p.Id2 == id2
                    select p.Image).First();

        return query.  
    }

我需要返回此处填充图片?

我有一种有趣的感觉,它不会那么简单!

感激地收到任何指示。

1 个答案:

答案 0 :(得分:0)

我会创建一个Http Handler来执行此操作。有些浏览器支持在标记中写出二进制图像,但这是非标准的,所以我建议反对它。

如果您可以从查询中获取字节,请执行以下操作:

然后创建处理程序。

public class IISHandler : IHttpHandler
{
    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "image/jpeg";
        myent logo = new myent();

        var query = (from p in logo.tblLogoes
                    where p.Id == id && p.Id2 == id2
                    select p.Image).First();
        byte[] bytes = query.bytes;
        context.Response.OutputStream.Write( bytes, 0, bytes.Length);
    }
}

注册句柄:

<system.web>
<httpHandlers>
    <!-- ImageHandler handlers -->
    <add verb="*" path="myimages/*.jpg" type="namespace.IISHandler, namespace" />
</httpHandlers>

...

在您的网页上,让<img>标记指向处理程序。

<img src="myimages/someimage.jpg">

您的代码几乎没有显示您如何定位图片,ID,名称?您很可能想要将一些标识符传递给处理程序,因此您可以提供正确的图像。

请查看http://msdn.microsoft.com/en-us/library/ms972953.aspx,了解有关使用http处理程序提供动态内容的更深入的示例。