问题描述
如果我将图像 (jpg 或 png) 转换为 base64,那么它会更大,还是会有相同的大小?它会有多大?
建议在我的网站上使用 base64 编码的图像吗?
最佳解决方案
大约会增加 37%
Very roughly, the final size of Base64-encoded binary data is equal to 1.37 times the original data size
资料来源:http://en.wikipedia.org/wiki/Base64
次佳解决方案
这是 David Calhoun 的 a really helpful overview of when to base64 encode and when not to 。
基本答案= gzipped base64 编码文件在文件大小与标准二进制 (jpg /png) 大致相当。 Gzip 的二进制文件将具有较小的文件大小。
Takeaway =编码和加载你的 UI 图标等方面有一些优势,但是对于较大的图像来说这是不明智的。
第三种解决方案
在 base64 中会更大。
Base64 使用每位字节 6 位对数据进行编码,而二进制使用每位字节 8 位。而且,Base64 有一点点开销。并不是所有的位都与 Base64 一起使用,因为它首先在仅能够正确处理 non-binary 数据的系统上编码二进制数据。
这意味着编码的图像将大约增加 25%,加上填充的不断的开销。
第四种方案
将图像编码到 base64 将使其大约 30%。
请参阅有关 Data URI scheme 的维基百科文章中的详细信息,其中说明:
Base64-encoded data URIs are 1/3 larger in size than their binary equivalent. (However, this overhead is reduced to 2-3% if the HTTP server compresses the response using gzip)
第五种方案
一定会花费你更多的空间如果要使用 base64 编码图像的带宽。但是,如果您的网站有很多小图像,您可以通过将图像编码为 base64 并将其放入 html 来减少页面加载时间。以这种方式,客户端浏览器不需要与图像进行很多连接,而是将它们放在 html 中。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。