为什么toDataURL这么慢?

时间:2013-12-13 01:55:51

标签: javascript html canvas

如果我通过网络传输简单图像,速​​度很快。当我尝试使用toDataURL传输在画布中创建的相同图像时,速度要慢得多。为什么呢?

1 个答案:

答案 0 :(得分:9)

一般情况下,你没有提供太多的背景信息:

当您使用toDataURL()时,浏览器会将图像编码为带有小标题的Base-64流。与非编码大小相比,base-64总是将大小增加33%。

如果您原生地传输JPEG编码文件,则其尺寸通常小于图像的PNG版本。如果您忘记为toDataURL指定图像类型,则浏览器将始终默认为PNG。

在这种情况下,请以这种方式指定JPEG:

var quality = 0.7;
var dataUri = canvas.toDataURL('image/jpeg', quality);