2010-04-15 8 views

Répondre

19

Peut-être Inline Images with Data URLs idée?

Les images en ligne utilisent le schéma d'URI de données d'inclure des images directement dans le web pages. Comme défini par la RFC 2397, les données URI sont conçus pour intégrer de petites données comme des données "immédiates", comme si elles ont été référencées de manière externe. L'utilisation des images en ligne enregistre les requêtes HTTP sur objets référencés de manière externe.

System.Drawing.Image image = GetImageFromSomewhere(...); 

byte[] imageData = ImageToByteArray(image); 
string imageBase64 = Convert.ToBase64String(imageData); 
string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64); 

puis quelque part dans la page:

<img src= "<%= ImageSrcBytes %>" /> 

AFAIK cela fonctionne pour Opera 7.2+, Firefox, Safari, Netscape, Mozilla et IE8 + (IE8 jusqu'à 32 Ko).

Pour une version antérieure d'Internet Explorer il existe une solution de contournement - MHTML. L'exemple comment le faire est here.

+0

génial, merci, cela a fonctionné avec brio. Beaucoup apprécié – Webcognoscere

+1

Cela ne semble pas fonctionner dans Internet Explorer 7/8, aucune suggestion – Webcognoscere

0

Le navigateur utilise l'attribut src pour envoyer une requête distincte au serveur afin d'obtenir le contenu de l'image. Il n'affiche pas les octets dans le src comme l'image elle-même.

Vous devrez donc vous souvenir de ces octets (session?) Et utiliser un gestionnaire (l'URL que vous avez ajoutée à l'attribut src) pour que le navigateur les demande.

Questions connexes