2016-07-29 4 views
0

サービス用のAngularJSアプリケーションを構築しています。.NET C#をコーディング目的で使用しています。彼らはBase64でスティングとして画像を送信しているし、ここでは、角HTML内にBase64を結合しているWeb APIサービスからのAngualrJS HTMLのバイト配列イメージの表示

しかし、言ったアプローチで - 次のポストLoad image from C# Byte array and place image in html tag using AngularJSで述べたように今私は、コードの構造を次のようです。ロードのパフォーマンスが低下します。私の記事の1つでは、関連する回答がCompress a Byte Array Image without Scaling using .Net C#で、「Base64ではなく通常のデータを送信する」という文字列が記載されています。

のHTML <img />タグに、バイト配列イメージを表示する方法を教えてください。現在、私は以下を使用しています。

<img ng-src="data:image/jpeg;base64,{{ image.Content }}" /> 

答えて

0

このようなコントローラ機能でバイナリイメージデータを呼び出します(可能な解決策として、Fiddleへのリンクを参照してください)。

<img data-ng-src="{{getImage(image.Content)}}" /> 

$scope.getImage = function(data){ 
    return 'data:image/jpeg;base64,' + data; 
} 

2つの可能なアプローチを示しているフィドルを見てください。

+0

ここでは、1つのプロパティ 'data'、つまりBase64文字列を使用していますか? –

+0

実際には 'data'オブジェクトを正しい' data:image/jpeg; base64、 'プレフィックスで囲むだけです。あなたの問題について私はあなたがimage.Contentを使用することに気付く - JSは大文字と小文字を区別していることに注意してください。 –

+0

ここで 'image.Content'は' Base64 String' - 'Convert.ToBase64String(imgArr)'です - ここでは文字列をClientに返していて、次にStingの 'image.Content'をバインドしています「」。したがって、パフォーマンスが低下します。今度は 'Convert.ToBase64String(imgArr)'の代わりにByte配列** 'imgArr' **を送ります。 –

関連する問題