toDataURL()文件大小增加
toDataURL() file size increase
当我在浏览器中上传某个文件时,文件类型为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来压缩图像数据,但不幸的是,我们无法通过上下文方法访问它。
相关文章:
- 预编译的车把模板使文件大小加倍
- Node.js:在修改时确定文件大小
- 使用ajax获取通过FTP上传的文件的文件大小——试图防止ajax中断自身
- 从多个文件上传中检索文件大小
- 文件大小的进度指示器
- Dropzone最大文件大小超过事件
- 如何使用 html 根据表内容增加图像大小
- expressjs文件上传,检查是否确实有文件发送,指定最大文件大小&保留它的名字
- 可以使用Plupload调整文件大小以获得更多大小
- toDataURL()文件大小增加
- Javascript人类可读文件大小
- 是否有一种方法可以限制要上传到客户端服务器的文件大小
- SJCL加密导致文件大小错误
- 减少请求的文件大小或减少浏览器计算次数
- 上传前请检查文件大小
- Twilio视频:如何增加视频大小
- Jquery文件大小验证无效
- 如何在javascript上传前检查文件大小
- JQuery功能,可在任何地方增加字体大小
- Canvas toDataUrl增加了图像的文件大小