0

これは Binary[] (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>
}

私のページでは、これらの読み込まれた画像ごとにエラー画像が表示されます。誰かがこれを解決するのを手伝ってくれませんか?

お時間をいただきありがとうございます。

4

1 に答える 1

1

インライン画像のフォーマットが正しくありません - 次のようになります:

data:MIMETYPE;base64,CONTENT_AS_BASE64_STRING

文字列に中括弧 ( {および} ) を含めないでください。インライン画像の詳細については、この記事を参照してください。

インライン画像にバイトを書き込んでいるようです。インライン イメージは、コンテンツがBase64 形式の文字列として指定されている場合に機能します。そのため、 Convert.ToBase64Stringを使用して画像コンテンツを Base64 文字列 (現在のコンテンツはバイト配列になっています) に変換する必要があります。

String.Formatを使用することもお勧めします。

<img src=@string.Format("data:{0};base64,{1}", imgMIME[i], Convert.ToBase64String(imgBinary[i]))/> 

IMO は読みやすさを承認するため、正しい文字列を簡単に確認できます。インライン画像の作業例:

<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" />

次のようになります。

インライン画像出力

image 要素の html ソースを見てください。そのようなテキストが表示されず、数字のみが表示される場合、コンテンツは base64 文字列として書き込まれません。

于 2013-11-10T10:55:29.440 に答える