回答
它会在base64中变大。
Base64每字节使用6位来编码数据,而二进制使用每字节8位。另外,Base64还有一点填充开销。并非所有位都与Base64一起使用,因为它首先开发用于在只能正确处理非二进制数据的系统上编码二进制数据。
这意味着编码后的图像将大约增加25%,并且还会增加填充的常量开销。
将图像编码为base64会使其大约增加30%。
见维基百科文章有关Data URI scheme,在那里它指出在细节:
Base64编码数据的URI是在尺寸上大于它们的二进制等效1/3大。 (然而,如果HTTP服务器压缩使用gzip响应这种开销减少到2-3%)
它肯定会花费你更多的空间&带宽,如果你想使用base64编码图像。但是,如果您的网站有很多小图片,您可以通过将图片编码为base64并将其放入html中来缩短页面加载时间。通过这种方式,客户端浏览器不需要与图像进行很多连接,但是将会使用html。
这里是大卫卡尔霍恩的a really helpful overview of when to base64 encode and when not to。
基本答案 = gzipped base64编码的文件在文件大小上与标准二进制文件(jpg/png)大致相当。 Gzip'd二进制文件将具有较小的文件大小。
外卖 =编码和gzip你的用户界面图标等有一些优势,但对于较大的图像这样做是不明智的。
的base64图像的大小
Base64的使用64个不同的字符,这是2^6。所以base64每8位字符存储6bit。所以从未转换的数据到base64数据的比例是6/8。这不是确切的计算,而是一个粗略的估计。
实施例:
周围64KB 48KB的图像需要为base64变换图像。
计算:(48/6)×8 = 64
在Linux系统简单CLI计算器:
$ cat /dev/urandom|head -c 48000|base64|wc -c
64843
或使用图像:
$ cat my.png|base64|wc -c
的base64图像和网站
这个问题很多更难以回答。一般来说,使用base64的图像越大,意义越小。但请考虑以下几点:
- HTML文件或CSS文件中的很多嵌入式图像可能具有相似的字符串。对于PNG,你经常会发现重复的“A”字符。使用gzip(有时称为“deflate”),甚至可能会赢得大小。但这取决于图像内容。
- HTTP1.1的请求开销:特别是有很多cookie时,您可以轻松地为每个请求开销几千字节。嵌入base64图像可能会节省带宽。
- 不要base64编码SVG图像,因为gzip在XML上比在base64上更有效。
- 编程:在动态生成的图像上,更容易在一个请求中传递它们以协调两个相关请求。
- 深层链接:如果要防止下载图像,从HTML页面提取图像有点麻烦。
所以答案是:这取决于。
- 1. 图像文件大小较小的形式base64编码
- 2. Base64编码图像
- 3. Base64编码图像
- 4. base64编码的图像压缩/调整大小
- 5. PHP Alter Base64编码图像
- 6. 调整大小/作物图像编码为base64图像字符串
- 7. 将Base64编码图像加密为另一个有效的Base64编码图像
- 8. 使用javascript编辑base64编码图像
- 9. Base64图像大小变化保存
- 10. 从base64调整图像大小
- 11. 将base64转换为图像调整大小并在php中编码
- 12. 解码Base64图像
- 13. Base64编码和观看图像
- 14. 现在显示Base64编码图像
- 15. 从Base64编码图像获取尺寸
- 16. Base64编码和Adobe Air中的图像
- 17. 发送/显示base64编码图像
- 18. Django的保存Base64编码图像
- 19. Android/iOS上的Base64编码图像
- 20. 将图像编码为Amazon S3的Base64
- 21. 验证base64编码图像.NET核心
- 22. 带有base64中断图像的编码/解码图像
- 23. Base64编码BSON小于BSON?
- 24. 将大图像编码为base64不起作用
- 25. 到base64的大图像
- 26. Base64图像发布到大
- 27. 服务器端D3 - SVG编码为Base64编码的图像
- 28. Base64编码为base64,
- 29. 以Base64编码图像并以ExpressJS作为图像发送
- 30. HTML中不同图像的一个Base64编码图像
唯一一次你会想要做这样的事情是,如果你被限制为纯文本资源,并且出于某种原因无法使用原始图像格式。 – Wug 2012-07-09 20:13:02
这里有一个很好的答案:http://stackoverflow.com/questions/1533113/calculate-the-size-to-a-base-64-encoded-message – Steed 2013-04-04 13:28:22
base64使deeplinks不可能。这可以是一个优点。 – damoeb 2015-02-25 14:23:25