2016-07-28 29 views
1

Ich baue eine AngularJS-Anwendung, für den Dienst verwende ich .NET C# zum Zweck der Codierung. Ich lade Bilder von SQL Server als Byte-Array ab und ich sende das Byte-Array an AngularJS und es zeigt das Bild im HTML an.Komprimieren eines Byte-Array-Bilds ohne Skalierung mit .Net C#

folgte ich die gleichen wie wie in der Post Load image from C# Byte array and place image in html tag using AngularJS

Aber ich bin in meinen Daten das Leistungsproblem gegenüber. Meine Datenbank enthält die Byte-Array-Größe ist ca. 2 bis 3 MB. Also, basierend auf der Internet-Bandbreite ist es schwer zu laden. Also, bitte helfen Sie mir, das Byte-Array zu komprimieren, ohne das Bild zu skalieren?

Ich suchte viel im Web, aber jeden Beitrag, den sie in Bezug auf die Skalierung des Bildes komprimiert. Aber ich muss das Byte-Array ohne Skalierung komprimieren.

+0

Welches Format haben Ihre Bilder? Jpeg, Png? Dann werden Sie nicht viel Glück haben, denn diese Formate sind bereits in Bezug auf Größe sehr optimiert. – derpirscher

+0

Ich benutze sowohl .jpg als auch .png. –

Antwort

0

Wenn Sie einige der Standard-Bildformate wie jpeg oder png verwenden, sind Ihre Bilder bereits komprimiert und es gibt nicht viel, was Sie tun könnten, um ihre Größe weiter zu reduzieren, es sei denn, Sie skalieren sie natürlich.

Dies wird gesagt, in dem Artikel, den Sie verknüpft haben, scheinen die Bilder über den Draht vom Server als Base64 Zeichenfolgen gesendet werden, die einen schrecklichen Overhead verursacht, wie es ihre Größe aufbläht. Und je größer die Bilder, desto größer der Overhead, wenn Sie Base64 verwenden. Also, wenn Sie den Rat in diesem Artikel befolgt haben, sollten Sie nicht haben. Stattdessen sollten Sie die Bilder von Ihrem Server als unverarbeitete Bytes im Antworttext streamen und keine Base64-Codierung verwenden. Dann verwenden Sie einfach die Standard-Tags , deren src-Eigenschaft direkt auf Ihre Server-URL verweist. Im Grunde genommen sollte Ihr Modell in Ihrer Angular-Anwendung nicht aus mehreren base64-Strings bestehen, die Sie als AJAX-Requests heruntergeladen haben, sondern als Array von URLs, die der entsprechenden image-Tags-src-Eigenschaft zugewiesen werden.

+0

können Sie mir bitte helfen, ** Image Byte [] '** in' 'zu binden. Bitte hilf mir ... –