为什么toDataURL这么慢?

goo*_*ing 8 html javascript canvas

如果我通过网络传输一个简单的图像,它会很快.当我尝试使用toDataURL它来传输在画布中创建的相同图像时要慢得多.为什么?

小智 10

一般来说,你没有给出太多的背景:

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

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

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

var quality = 0.7;
var dataUri = canvas.toDataURL('image/jpeg', quality);
Run Code Online (Sandbox Code Playgroud)