2010-08-07 16 views

Respuesta

27

Dos soluciones.

  1. Cree una página de controlador. Eso toma un parámetro ImageID/RowID como GET y devuelve datos con tipo de imagen/jpeg o image/png.

  2. Utilice el esquema DATA uri como se explica en wikipedia.

    < img src = "datos: imagen/png; base64, iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs + 9AAAABGdBTUEAALGP C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV + IA AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq CH9 // q1uH4TLzw4d6 + ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0 vr4MkhoXe0rZigAAAABJRU5ErkJggg ==" alt = "punto rojo"/>

+5

Niza ... Nunca había escuchado acerca de los datos uri sheme. +1 a ti. Es por eso que amo este sitio ... Algo nuevo todos los días ... – David

+0

@david - incluso yo sabía muy tarde en mi carrera. creía que solo las rutas de archivos están permitidas allí. – ankitjaininfo

+0

@ankit +1, ídem @David. Nunca lo oí; me resolverá un gran problema: pre-descargar imágenes png. Las clases de CSS que incorporan imágenes codificadas en base 64 (creo) serán mucho más rápidas, más confiables y más repetibles que otros esquemas de pre-descarga conocidos, pero bastante feos y hackosos. –

1

Esto se puede hacer fácilmente mediante la conversión º e Byte Array a una imagen Base64.

public string GetImageAsBase64String(byte[] bin) 
{ 
    if (bin != null) 
    { 
     return "<img src=\"data:image/jpeg;base64," + Convert.ToBase64String(bin) + "\">"; 
    } 
    else 
    { 
     return null; 
    } 
} 

//usage, for demo purposes an uploaded image from a FileUpload Control 
Label1.Text = GetImageAsBase64String(FileUpload1.FileBytes); 
Cuestiones relacionadas