toDataURL()文件大小增加

toDataURL() file size increase

本文关键字:增加 文件大小 toDataURL      更新时间:2024-05-02

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

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

我已经看到我可以为toDataURl(type, quality)指定一个选项,但我不能将其用于png文件,只能用于jpeg,我想要一个png。

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

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

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