如果我通过网络传输简单图像,速度很快。当我尝试使用toDataURL
传输在画布中创建的相同图像时,速度要慢得多。为什么呢?
答案 0 :(得分:9)
一般情况下,你没有提供太多的背景信息:
当您使用toDataURL()
时,浏览器会将图像编码为带有小标题的Base-64流。与非编码大小相比,base-64总是将大小增加33%。
如果您原生地传输JPEG编码文件,则其尺寸通常小于图像的PNG版本。如果您忘记为toDataURL
指定图像类型,则浏览器将始终默认为PNG。
在这种情况下,请以这种方式指定JPEG:
var quality = 0.7;
var dataUri = canvas.toDataURL('image/jpeg', quality);