Ist es möglich, weiter zu komprimieren, die eine Base64-PNG-String?
Habe ich ein PNG-Bild und bekam seinen PNG Base64 string-Darstellung. Es ist immer noch ziemlich groß und ich würde gerne wissen, ob es sein kann, deutlich weiter komprimiert. Ist das überhaupt möglich?
Hintergrund
Ich bin mit Selenium 2 (Java) erstellen Sie einen screenshot der aktuellen web-Seite, konvertieren Sie es als base64-string und sendet den string des JavaScript-executor zu erstellen, dass Bild und einige Bild-Verarbeitung. Aber wenn, dass der string zu groß ist, gibt der server eine Ausnahme.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die einfache Antwort: Nein - nicht ohne dabei die "druckbaren string" Natur
In der Regel PNG, die bereits verwendet eine ausgefeilte Komprimierung wie es ist verwendet in ZIP-Dateien. Deshalb komprimieren, bevor die base64-Codierung wird Ihnen nur eine sehr begrenzte Größe Reduzierung.
Anwendung der Kompression nach der base64-Kodierung in Binär-Daten-wieder - in diesem Fall können Sie einfach überspringen Sie die base64-Codierung Schritt.
Wenn es ein problem mit dem Netzwerk und nicht wirklich die Größe der Zeichenfolge, dieser arbeitete für mich, wenn ich an meine Bilder zu einer mongo-Datenbank.
Mit
Express.js
die Grenze des bodyParser ist standardmäßig auf 1056kso können Sie beheben das problem durch ändern der Grenze als unten.
Könnten Sie sparen ein paar hundert bytes mit einem Run-Length-Encoding Algorithmus.
Beispielsweise
(credit: https://github.com/exercism/javascript/blob/master/exercises/run-length-encoding/example.js)
test:
expect(encode('AABBBCCCC')).toEqual('2A3B4C')