如果我将图像(jpg或png)转换为base64,那么它会更大,还是会有相同的大小?它会变得多大?
是否建议在我的网站上使用base64编码图像?
答案 0 :(得分:107)
答案 1 :(得分:12)
这是David Calhoun的a really helpful overview of when to base64 encode and when not to。
基本答案 = gzipped base64编码文件的文件大小与标准二进制文件(jpg / png)大致相当。 Gzip的二进制文件将具有较小的文件大小。
外卖 =编码和压缩您的UI图标等有一些优势,但对于较大的图片,这是不明智的。
答案 2 :(得分:6)
它将在base64中更大。
Base64每字节使用6位来编码数据,而二进制每字节使用8位。此外,Base64还有一些填充开销。并非所有位都与Base64一起使用,因为它是首先开发的,用于在只能正确处理非二进制数据的系统上编码二进制数据。
这意味着编码图像将大约增加25%,加上填充的常量开销。
答案 3 :(得分:5)
将图像编码到base64将使其大约增加30%。
请参阅维基百科文章中有关Data URI scheme的详细信息,其中包含:
Base64编码数据URI的大小比其二进制等值大1/3。 (但是,如果HTTP服务器使用gzip压缩响应,则此开销减少到2-3%)
答案 4 :(得分:4)
base64-images的大小
Base64使用64个不同的字符,这是2 ^ 6。因此base64存储每8位字符6位。因此从未转换数据到base64数据的比例为6/8。这不是精确计算,而是粗略估计。
示例:
48kb图像需要大约64kb作为base64转换图像。
计算:(48/6)* 8 = 64
Linux系统上的简单CLI计算器:
$ cat /dev/urandom|head -c 48000|base64|wc -c
64843
或使用图片:
$ cat my.png|base64|wc -c
base64-images和网站
这个问题要难得多回答。一般来说,使用base64感觉图像越大。但请考虑以下几点:
所以答案是:这取决于。
答案 5 :(得分:2)
肯定会花费你更多的空间和空间。带宽如果要使用base64编码的图像。但是,如果您的网站有很多小图片,您可以通过将图像编码为base64并将它们放入html来减少页面加载时间。通过这种方式,客户端浏览器不需要与图像建立很多连接,但是会以html形式显示它们。
答案 6 :(得分:0)