2010-08-07 61 views

回答

27

兩種解決方案。

  1. 構建處理程序頁面。這會將ImageID/RowID作爲GET參數,並使用mimetype image/jpeg或image/png返回數據。

  2. 如在wikipedia中所述使用DATA uri方案。

    < IMG SRC = 「數據:圖像/ PNG; BASE64, iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs + 9AAAABGdBTUEAALGP C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV + IA AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq CH9 // q1uH4TLzw4d6 + ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0 vr4MkhoXe0rZigAAAABJRU5ErkJggg ==」 ALT = 「紅點」/ >

+5

不錯..我從來沒有聽說過DATA uri sheme。 +1給你。這就是爲什麼我喜歡這個網站..每天都有新東西...... – David 2010-08-07 16:17:46

+0

@david - 即使我在職業生涯中很早就知道。我相信只有文件路徑才允許在那裏。 – ankitjaininfo 2010-08-07 16:22:26

+0

@ankit +1,同上@David。從來沒有聽說過;將爲我解決一個巨大的問題:預先下載png圖像。包含base-64編碼圖像的CSS類將(比我認爲的更快,更可靠,更可重複)比其他衆所周知的,但有點醜陋,駭人的預下載方案。 – 2010-08-07 17:37:51

1

這可以通過將th e字節數組映射到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);