2016-04-01 4 views
-1

Ich habe ein 200Kb jpg und ich möchte es in eine Base64-Zeichenfolge konvertieren.Wie groß ist das Verhältnis zwischen einer Bildgröße und der Länge der base64-String-Konvertierung?

Wie lang wird diese Base64-Zeichenfolge ungefähr sein?

Der Grund, warum ich frage, ist, weil ich dieses Bild als Base64 String in einem "Container" speichern möchte, die nur Zeichenfolgen mit einer maximalen Länge von 65000 Zeichen erlaubt.

Ich habe versucht, für mich, um herauszufinden, die Konsole des Chrome verwenden, aber der Browser hält aufgrund der Länge der base64 erzeugte Zeichenfolge Einfrieren, sobald ich es auf eine Variable und dem Weisen:

x = 'base64.....'; // ridiculously long string 
x.length; 
+0

200kb ist 200000 "Zeichen", mehr als 3 mal länger als 65000. Der gesunde Menschenverstand sollte sagen, dass die base64-Darstellung möglicherweise 3 Mal kleiner als die ursprüngliche Datei sein kann. Sonst wäre es bei weitem der weltweit beste Komprimierungsalgorithmus und wir würden ihn für alles verwenden. – JJJ

+1

Base64-Codierung ist etwa 4/3 der ursprünglichen Größe, aufgrund der wie die Bits gepackt sind. Ein 200Kb jpg wird in seiner base64-codierten Form etwa 266Kb groß sein. –

+1

Lesen Sie diese http://stackoverflow.com/questions/4715415/base64-what-is-the-worst-possible-increase-in-space-usage und diese http://stackoverflow.com/questions/11402329/base64- coded-image-size – Lewis

Antwort

1

Wie bereits in den Kommentaren erwähnt, gibt es keine Möglichkeit, eine genaue Zahl anzugeben, da diese davon abhängt, wie die Daten gepackt werden. Es wird jedoch größer als die Quelldatei sein. Eine Ballparkfigur hat etwa 270 000 Zeichen.

Eine einfache Möglichkeit, dies zu überprüfen ist, ein paar Bilder zu einem Online-Konvertierung Service laden wie https://www.base64-image.de/

+0

Perfekt, das war alles was ich wissen musste Emil! Ich war nur an dem Verhältnis interessiert. Es ist lustig, wie ein Kommentar den Begriff des gesunden Menschenverstandes mit dem Konzept des erworbenen Wissens vermischt hat. –

1

Die ungefähre Größe der Zeichenfolge 135% der ursprünglichen Größe auf die Expansion zurückzuführen ist, die stattfindet (nach zu meiner NetBSD-Manpage von Uuencode). Um n Bytes zu codieren, benötigen Sie 4 * ceil (n/3) Bytes und zusätzliche Zeilenumbrüche.

Verwandte Themen