图像大小与其 base64 字符串转换长度之间的比例是多少?

What is the ratio between an image size and the length of its base64 string conversion?

我有一个 200Kb 的 jpg,我想将它转换成 base64 字符串。

base64 字符串大约有多长?

我问的原因是因为我想将该图像作为 base64 字符串存储在 "container" 中,它只允许最大长度为 65000 个字符的字符串。

我尝试使用 Chrome 的控制台自己找出答案,但由于 base64 生成的字符串的长度,浏览器一直冻结,只要我将它分配给一个变量并执行:

x = 'base64.....'; // ridiculously long string
x.length;

如评论中所述,无法给出确切的数字,因为它取决于数据的打包方式。但是它会比源文件大。大概数字大约是 270 000 个字符。

检查这一点的一个简单方法是将一些图像上传到在线转换服务,例如 https://www.base64-image.de/

由于发生了扩展,字符串的大约大小是原始大小的 135%(根据我的 uuencode 的 NetBSD 联机帮助页)。要编码 n 个字节,您需要 4*ceil(n/3) 个字节和额外的换行符。