2013-11-09 76 views
0

這是我從二進制[](SqlServerCe)加載圖像的循環。每個圖像被存儲在保持一個字節數組列表:從二進制加載圖像

List<byte[]> imgBinary = new List<byte[]>(); 

的imgMIME變量包含像值:

image/png 
image/bmp 

等。

我當前的代碼如下所示:

@for (int i = 0; i < infos.Count(); i++) 
{ 
    <li>  
     @lat[i], 
     @lon[i], 
     @infos[i], 
     <img src="data:'+'@imgMIME[i]'+';base64{'+'@imgBinary[i]'+'}"/> 
    </li> 
} 

在我的網頁我得到一個錯誤圖像的每一個加載圖像。 可能有人請幫我解決這個問題嗎?

謝謝你的時間。

回答

1

你的內嵌圖像格式是不正確 - 它應該是:

data:MIMETYPE;base64,CONTENT_AS_BASE64_STRING 

應該有字符串中沒有大括號({} )。您可以在this article閱讀更多關於嵌入式圖像的內容。

它看起來像你正在寫入字節到嵌入式圖像。當內容以Base64 formatted string的形式給出時,嵌入式圖像將起作用。這就是爲什麼您需要使用Convert.ToBase64String將圖像內容轉換爲Base64字符串(當前內容位於字節數組中)。

我也建議你使用String.Format

<img [email protected]("data:{0};base64,{1}", imgMIME[i], Convert.ToBase64String(imgBinary[i]))/> 

國際海事組織批准的可讀性,因此它更容易看到正確的字符串。工作內嵌圖像的一個例子:

<img src="data:image\png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xOC8wOaw6EPwAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAACEElEQVRYhcWXQY7TMBSGPyM2SEgUiT25wWRO0CCxeV5xA+YGzA2mF0DM7NjRI7B6b5uROECHFTvCBaCVEEvCIjYKaZraBdpfip7y/GJ/ebZfHNe2LafU/Zxg7/0P4AGwAVbBXQe7AtZAo6pNap8uNQPe+xnwDfgOPEx4ZBfkE+CTqn6AvAyUwb5W1UWAKoFZuMpeXPTNg2/OtlwuQBVsfCtUddVrf7/rQe99fLYA3gI/f1PEKRCRyblwzgGQOmVm5kZACuAzcKuqFcC9pN7+nYpg6+jYmoIx8hztyWQVbBMdx85AXKgnAygAVLU+FcAZ8KXvyAYQkdkhI4eaAb30ZwOIyIKJ/b5HEaA+CEBELoArYC4iywMAimD7xSsNIAz+rud6eQBEFWyTBSAil4PB+xB1xpooYat8TwOIyDXwZiJkzmBOxxS+pI+Au2HbTgARKYFX+zoHzkKWpjS6AyYBgBcJg6fGRoDVsGEKYD3iu6MrJJuE2L8GWPLnnN3Q1YA13RtHiA2w2ANQZAOY2drMSuAceGxml8AFXTltzGwGnJvZzMy2Oh5oDjB2Vtx7Ioqdh4X2lO6Nl0CVMHC/BN+OtScfyczsGrhOje+pCLYZazzG13DnFoTM/4JUOefw3i/oFt3z4K6PBhB0Nbj/ejSAtm1xzj0LtxWAqn4ci00+lucq9XB77CPZlpL/Df+XTp6BXyWzqYOyhB+rAAAAAElFTkSuQmCC" /> 

它看起來像這樣:

inline image output

看一看圖像元素的HTML源代碼。它不會看到這樣的文本,但只有數字,那麼內容不會寫成base64字符串。

+0

謝謝你的回答,但我仍然得到了相同的錯誤圖像。你不知道爲什麼嗎? – Marek

+0

你的錯誤究竟是什麼?用錯誤文本擴展你的問題,並給出一個圖像內容,以檢查內容是否正常。 – pasty

+0

我更改/擴展了我的答案中的代碼。試試看,並告訴我它現在是否可行。我忘了告訴你,內聯圖像內容應該是Base64字符串,並將byte []轉換爲base64string。 – pasty