Puede codificar BASE64 el contenido de la imagen directamente en el atributo SRC, sin embargo, creo que solo Firefox lo analizará de nuevo en una imagen.
Lo que suelen hacer es crear un HTTPHandler muy ligero para servir las imágenes:
using System;
using System.Web;
namespace Example
{
public class GetImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request.QueryString("id") != null)
{
Blob = GetBlobFromDataBase(id);
context.Response.Clear();
context.Response.ContentType = "image/pjpeg";
context.Response.BinaryWrite(Blob);
context.Response.End();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
Puede hacer referencia a esto directamente en su etiqueta img:
<img src="GetImage.ashx?id=111"/>
O, incluso se podría crear un control de servidor que lo hace por usted:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Example.WebControl
{
[ToolboxData("<{0}:DatabaseImage runat=server></{0}:DatabaseImage>")]
public class DatabaseImage : Control
{
public int DatabaseId
{
get
{
if (ViewState["DatabaseId" + this.ID] == null)
return 0;
else
return ViewState["DataBaseId"];
}
set
{
ViewState["DatabaseId" + this.ID] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
output.Write("<img src='getImage.ashx?id=" + this.DatabaseId + "'/>");
base.RenderContents(output);
}
}
}
Esto podría usarse como
<cc:DatabaseImage id="db1" DatabaseId="123" runat="server/>
Y, por supuesto, puede establecer la ID de base de datos en el código de seguimiento según sea necesario.
Si está trabajando con System.Drawing en ASP.NET, [lea estas dificultades que debe evitar] (http://nathanaeljones.com/163/20-image-resizing-pitfalls/). Alternativamente, solo use la biblioteca [my ImageResizing.Net] (http://imageresizing.net) para evitar todos los errores de GDI, obtenga un lector de Blob SQL optimizado y un sistema de almacenamiento en caché de disco increíblemente bueno. –
El siguiente artículo lo ayudará a: [Byte de vinculación automática [] a asp: Imagen] (http://www.codeproject.com/Tips/445876/Auto-bind-byte-to-asp-Image) –