Ist es möglich, einen Base64 PNG String weiter zu komprimieren?

8

Ich habe ein PNG-Bild und habe seine Base64-PNG-Zeichenfolgendarstellung erhalten. Es ist immer noch ziemlich groß und ich würde gerne wissen, ob es noch weiter komprimiert werden kann. Ist das überhaupt möglich?

Hintergrund

Ich verwende Selenium 2 (Java), um einen Screenshot der aktuellen Webseite zu erstellen, wandle ihn als Base64-String um und sende diesen String an den JavaScript-Executor, um das Image neu zu erstellen und einige Bildverarbeitungen vorzunehmen. Wenn diese Zeichenfolgengröße jedoch zu groß ist, gibt der Server eine Ausnahme zurück.

    
Alp 19.03.2012, 12:18
quelle

2 Antworten

9

Die einfache Antwort: Nein - nicht ohne die "druckbare Zeichenkette" zu verlieren

Normalerweise verwendet PNG bereits eine ausgefeilte Komprimierung, wie sie in ZIP-Dateien verwendet wird. Wenn Sie also vor der base64-Codierung komprimieren, erhalten Sie nur eine sehr begrenzte Größenreduzierung.

Wenn Sie die Komprimierung nach der base64-Codierung anwenden, wird es wieder zu Binärdaten. In diesem Fall können Sie einfach den Schritt base64-Codierung überspringen.

    
Robert 19.03.2012, 12:33
quelle
1

Wenn es ein Problem mit dem Netzwerk und nicht wirklich die Größe Ihrer Zeichenfolge ist, funktionierte das für mich, als ich meine Bilder an eine Mongo-Datenbank schickte.

Unter Verwendung von Express.js wird das Limit von bodyParser standardmäßig auf 1056k gesetzt So können Sie das Problem beheben, indem Sie das Limit wie folgt ändern.

%Vor%     
Peter Evans 31.03.2016 23:10
quelle