问题描述

如果我将图像 (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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛