2010-08-07 7 views

Répondre

27

Deux solutions.

  1. Créer une page de gestionnaire. Cela prend un ImageID/RowID comme paramètre GET et retourne des données avec mimetype image/jpeg ou image/png.

  2. Utilisez le schéma DATA uri comme expliqué au wikipedia.

    < img src = "data: image/jpeg; base64, iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs + 9AAAABGdBTUEAALGP C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV + IA AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq CH9 // q1uH4TLzw4d6 + ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0 vr4MkhoXe0rZigAAAABJRU5ErkJggg ==" alt = "point rouge"/>

+5

Nice .. Je n'avais jamais entendu parler du DATA uri sheme. +1 à vous. C'est pourquoi j'aime ce site .. Quelque chose de nouveau chaque jour ... – David

+0

@david - même je savais très tard dans ma carrière. J'ai eu la conviction que seuls les chemins de fichiers sont autorisés. – ankitjaininfo

+0

@ankit +1, idem @David. Jamais entendu parler; va résoudre un gros, gros problème pour moi: le pré-téléchargement des images png. Les classes CSS qui intègrent des images encodées en base 64 seront (je pense!) Beaucoup plus rapides, plus fiables et plus répétables que d'autres schémas de pré-téléchargement hackish bien connus mais plutôt moche. –

1

Ceci peut être fait facilement en convertissant e Byte Array à une image 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); 
Questions connexes