2016-07-28 21 views
1

サービス用にAngularJSアプリケーションを構築しています.NET C#をコーディング目的で使用しています。私はByte ArrayとしてSQL Serverからイメージを取得しています。そして、Byte ArrayをAngularJSに送信し、HTMLにイメージを表示します。.Net C#

私はポストでLoad image from C# Byte array and place image in html tag using AngularJS

などと同じに従っしかし、私は私のデータでは、パフォーマンスの問題に直面しています。私のデータベースにはバイト配列のサイズが含まれています。 2〜3 MB。だから、インターネット帯域幅に基づいてその負荷を奮闘する。 イメージをスケーリングせずにバイト配列を圧縮する方法を親切に教えてください。

私はウェブで多くを検索しましたが、すべての投稿は画像の縮尺に関して圧縮されていました。しかし、私はスケーリングせずにバイト配列を圧縮する必要があります。

+0

あなたの画像はどのような形式ですか? Jpeg、png?これらのフォーマットはすでにサイズの点で非常に最適化されているので、あなたは多くの運がありません – derpirscher

+0

私は.jpgと.pngの両方を使用しています。 –

答えて

0

jpegpngなどの標準画像フォーマットの一部を使用している場合、画像はすでに圧縮されており、縮小しない限り、さらにサイズを縮小するためにできることはあまりありません。

これはあなたがリンクしている記事では、画像がサーバーからのサイズが大きくなるとひどいオーバーヘッドが発生するBase64文字列として送信されているようです。そして、画像が大きければ大きいほどオーバーヘッドは大きくなります。あなたがこの記事のアドバイスに従っているなら、あなたは持ってはいけません。代わりに、サーバーからのイメージをレスポンス本文の生のバイトとしてストリーミングし、Base64エンコーディングを使用しないでください。次に、標準<img>タグを使用して、srcのプロパティがサーバーのURLを直接指しているタグを使用します。基本的にAngularアプリケーションでは、AJAXリクエストとしてダウンロードされた複数のbase64文字列ではなく、対応するイメージタグsrcプロパティに割り当てられるURLの配列で構成されるべきです。

+0

」の** Image Byte [] '**をバインドする方法を教えてください。親切に私を助けて... –