Wenn ich ein Bild (jpg oder png) in base64 konvertiere, ist es dann größer oder hat es dieselbe Größe? Wie viel größer wird es sein?
Wird empfohlen, Base64-codierte Bilder auf meiner Website zu verwenden?
Wenn ich ein Bild (jpg oder png) in base64 konvertiere, ist es dann größer oder hat es dieselbe Größe? Wie viel größer wird es sein?
Wird empfohlen, Base64-codierte Bilder auf meiner Website zu verwenden?
Antworten:
Es wird ungefähr 37% größer sein:
Sehr grob gesagt entspricht die endgültige Größe von Base64-codierten Binärdaten dem 1,37-fachen der ursprünglichen Datengröße
Hier ist eine wirklich hilfreiche Übersicht darüber, wann base64 codiert werden muss und wann nicht von David Calhoun.
Grundlegende Antwort = gzipped base64-codierte Dateien sind in der Dateigröße in etwa mit Standard-Binärdateien (jpg / png) vergleichbar. Gzip-Binärdateien haben eine kleinere Dateigröße.
Takeaway = Das Codieren und Zippen Ihrer UI-Symbole usw. hat einige Vorteile, ist jedoch für größere Bilder nicht ratsam.
In base64 wird es größer sein.
Base64 verwendet 6 Bits pro Byte, um Daten zu codieren, während Binär 8 Bits pro Byte verwendet. Außerdem gibt es bei Base64 einen kleinen Polsterungsaufwand. Nicht alle Bits werden mit Base64 verwendet, da es in erster Linie entwickelt wurde, um Binärdaten auf Systemen zu codieren, die nur nicht-Binärdaten korrekt verarbeiten können.
Dies bedeutet, dass das codierte Bild etwa 25% größer ist, zuzüglich eines konstanten Overheads für das Auffüllen.
Wenn Sie ein Bild in base64 codieren, wird es etwa 30% größer.
Weitere Informationen zum Daten-URI-Schema finden Sie im Wikipedia-Artikel.
Base64-codierte Daten-URIs sind 1/3 größer als ihr binäres Äquivalent. (Dieser Overhead wird jedoch auf 2-3% reduziert, wenn der HTTP-Server die Antwort mit gzip komprimiert.)
Die Antwort lautet: Es kommt darauf an.
Obwohl base64-Bilder größer sind, gibt es einige Bedingungen, unter denen base64 die bessere Wahl ist.
Größe der base64-Bilder
Base64 verwendet 64 verschiedene Zeichen und dies ist 2 ^ 6. Base64 speichert also 6 Bit pro 8 Bit Zeichen. Das Verhältnis von nicht konvertierten Daten zu base64-Daten beträgt also 6/8. Dies ist keine genaue Berechnung, sondern eine grobe Schätzung.
Beispiel:
Ein 48-KB-Image benötigt ca. 64 KB als Base64-konvertiertes Image.
Berechnung: (48/6) * 8 = 64
Einfacher CLI-Rechner auf Linux-Systemen:
$ cat /dev/urandom|head -c 48000|base64|wc -c
64843
Oder mit einem Bild:
$ cat my.png|base64|wc -c
Base64-Bilder und Websites
Diese Frage ist viel schwieriger zu beantworten. Im Allgemeinen ist das Bild mit base64 so groß wie weniger sinnvoll. Beachten Sie jedoch die folgenden Punkte:
Es kostet Sie definitiv mehr Speicherplatz und Bandbreite, wenn Sie base64-codierte Bilder verwenden möchten. Wenn Ihre Site jedoch viele kleine Bilder enthält, können Sie die Ladezeit der Seite verkürzen, indem Sie Ihre Bilder in base64 codieren und in HTML einfügen. Auf diese Weise muss der Client-Browser nicht viele Verbindungen zu den Bildern herstellen, sondern hat sie in HTML.