Se converto un'immagine (jpg o png) in base64, sarà più grande o avrà le stesse dimensioni? Quanto sarà maggiore?
Si consiglia di utilizzare immagini con codifica base64 sul mio sito Web?
Se converto un'immagine (jpg o png) in base64, sarà più grande o avrà le stesse dimensioni? Quanto sarà maggiore?
Si consiglia di utilizzare immagini con codifica base64 sul mio sito Web?
Risposte:
Sarà circa il 37% più grande:
Più o meno, la dimensione finale dei dati binari con codifica Base64 è pari a 1,37 volte la dimensione dei dati originali
Ecco una panoramica davvero utile di David Calhoun su quando codificare base64 e quando no .
Risposta di base = i file con codifica base64 compressi saranno più o meno paragonabili in termini di dimensioni del file al binario standard (jpg / png). I file binari Gzip avranno una dimensione di file inferiore.
Da asporto = C'è qualche vantaggio nel codificare e comprimere le icone dell'interfaccia utente, ecc., Ma non è saggio farlo per immagini più grandi.
Sarà più grande in base64.
Base64 utilizza 6 bit per byte per codificare i dati, mentre binario utilizza 8 bit per byte. Inoltre, c'è un piccolo sovraccarico di riempimento con Base64. Non tutti i bit vengono utilizzati con Base64 perché è stato sviluppato in primo luogo per codificare dati binari su sistemi che possono elaborare correttamente solo dati non binari.
Ciò significa che l'immagine codificata sarà più grande di circa il 25%, più un sovraccarico costante per il riempimento.
La codifica di un'immagine in base64 la renderà più grande di circa il 30%.
Vedere i dettagli nell'articolo di wikipedia sullo schema URI dei dati , dove si afferma:
Gli URI di dati con codifica Base64 hanno dimensioni maggiori di 1/3 rispetto al loro equivalente binario. (Tuttavia, questo overhead viene ridotto al 2-3% se il server HTTP comprime la risposta utilizzando gzip)
La risposta è: dipende.
Sebbene le immagini base64 siano più grandi, esistono alcune condizioni in cui base64 è la scelta migliore.
Dimensioni delle immagini base64
Base64 utilizza 64 caratteri diversi e questo è 2 ^ 6. Quindi base64 memorizza un carattere a 6 bit per 8 bit. Quindi la proporzione è 6/8 dai dati non convertiti ai dati base64. Questo non è un calcolo esatto, ma una stima approssimativa.
Esempio:
Un'immagine da 48kb necessita di circa 64kb come immagine convertita in base64.
Calcolo: (48/6) * 8 = 64
Calcolatrice CLI semplice su sistemi Linux:
$ cat /dev/urandom|head -c 48000|base64|wc -c
64843
O usando un'immagine:
$ cat my.png|base64|wc -c
Base64-immagini e siti web
Questa domanda è molto più difficile da rispondere. In generale, quanto più grande è l'immagine tanto meno ha senso usare base64. Ma considera i seguenti punti:
Ti costerà sicuramente più spazio e larghezza di banda se desideri utilizzare immagini con codifica base64. Tuttavia, se il tuo sito ha molte piccole immagini, puoi ridurre il tempo di caricamento della pagina codificando le tue immagini in base64 e inserendole in html. In questo modo, il browser client non avrà bisogno di fare molte connessioni alle immagini, ma le avrà in html.