Bir görüntüyü (jpg veya png) base64'e dönüştürürsem, daha büyük olur mu yoksa aynı boyutta mı olur? Ne kadar büyük olacak?
Web sitemde base64 kodlu görüntülerin kullanılması tavsiye edilir mi?
Bir görüntüyü (jpg veya png) base64'e dönüştürürsem, daha büyük olur mu yoksa aynı boyutta mı olur? Ne kadar büyük olacak?
Web sitemde base64 kodlu görüntülerin kullanılması tavsiye edilir mi?
Yanıtlar:
Yaklaşık% 37 daha büyük olacaktır:
Kabaca, Base64 ile kodlanmış ikili verilerin son boyutu, orijinal veri boyutunun 1,37 katına eşittir
İşte gerçekten yararlı base64 için kodlamak bakış ve değil David Calhoun tarafından.
Basic answer = gzip ile sıkıştırılmış base64 olarak kodlanmış dosyalar, dosya boyutu açısından standart ikili dosyayla (jpg / png) kabaca karşılaştırılabilir olacaktır. Gzip'lenmiş ikili dosyalar daha küçük dosya boyutuna sahip olacaktır.
Takeaway = UI simgelerinizi, vb. Kodlamanın ve gziplemenin bazı avantajları vardır, ancak bunu daha büyük resimler için yapmak akıllıca değildir.
Base64'te daha büyük olacak.
Base64, verileri kodlamak için bayt başına 6 bit kullanırken ikili, bayt başına 8 bit kullanır. Ayrıca, Base64 ile küçük bir dolgu ek yükü var. Base64 ile tüm bitler kullanılmaz, çünkü ilk olarak ikili olmayan verileri yalnızca ikili olmayan verileri doğru şekilde işleyebilen sistemlerde kodlamak için geliştirilmiştir.
Bu, kodlanan görüntünün yaklaşık% 25 daha büyük olacağı ve ayrıca dolgu için sürekli ek yük olacağı anlamına gelir.
Bir görüntüyü base64 olarak kodlamak, onu yaklaşık% 30 daha büyük hale getirir.
Veri URI şemasıyla ilgili wikipedia makalesindeki ayrıntılara bakın , burada belirtilmiştir:
Base64 olarak kodlanmış veri URI'leri, ikili eşdeğerlerinden 1/3 boyut olarak daha büyüktür. (Ancak, HTTP sunucusu yanıtı gzip kullanarak sıkıştırırsa bu ek yük% 2-3'e düşer)
Cevap şudur: Duruma göre değişir.
Base64 görüntüleri daha büyük olsa da, base64'ün daha iyi seçim olduğu birkaç koşul vardır.
Base64 görüntü boyutu
Base64, 64 farklı karakter kullanır ve bu 2 ^ 6'dır. Yani base64, 8 bit karakter başına 6 bit depolar. Dolayısıyla, dönüştürülmemiş verilerden base64 verilerine oran 6 / 8'dir. Bu kesin bir hesaplama değil, kaba bir tahmindir.
Misal:
48kb'lik bir görüntü, base64 dönüştürülmüş görüntü olarak yaklaşık 64kb'ye ihtiyaç duyar.
Hesaplama: (48/6) * 8 = 64
Linux sistemlerinde basit CLI hesaplayıcı:
$ cat /dev/urandom|head -c 48000|base64|wc -c
64843
Veya bir resim kullanarak:
$ cat my.png|base64|wc -c
Base64 görüntüleri ve web siteleri
Bu soruya cevap vermek çok daha zor. Genel olarak konuşursak, base64 kullanarak görüntü ne kadar büyükse daha az anlamlı olur. Ancak şu noktaları göz önünde bulundurun:
Base64 ile kodlanmış görüntüleri kullanmak istiyorsanız, kesinlikle size daha fazla alana ve bant genişliğine mal olacak. Ancak sitenizde çok sayıda küçük resim varsa, resimlerinizi base64 olarak kodlayıp html'ye yerleştirerek sayfa yükleme süresini azaltabilirsiniz. Bu şekilde, istemci tarayıcısının resimlerle çok fazla bağlantı kurması gerekmeyecek, ancak html biçiminde olacaktır.