1

当我在浏览器中上传某个文件时,文件类型为 jpeg,文件大小为 2MB,但是当我使用 将文件编码为 base64canvas.toDataURL()时,生成的文件大小约为 9MB。

为什么base64编码的文件比原文件大3-4倍?

我已经看到我可以为toDataURl(type, quality).

4

1 回答 1

0

Bade-64 只会(并且总是)使二进制表示大 33%。这是因为三个八位字节分布在四个字节上,因此这些字节的值可以表示为可打印的 ASCII 字符,因此是传输安全的。

最终大小由需要编码的二进制数组决定。此外,在编码数据之前会有几个字节的 uri-header。

PNG 文件是无损的,并且往往比 JPEG 大(但并非在所有情况下)。预计我们将不得不处理独立于使用 PNG 文件时遵循的 Base-64 编码的较大文件。PNG 也有可变压缩,因为它使用 gzip 压缩图像数据,但不幸的是,我们无法通过 context 方法访问它。

于 2015-02-25T02:51:24.017 回答