关于html5 canvas的预渲染?

新手上路,请多包涵

(浏览器是chrome)
预渲染就是把部分常要用到的图案画到buffer中,使用时直接把图案从buffer画到canvas上,无需在canvas上再进行复杂的绘制。(注:是预渲染,buffer创建一次后重复使用,不是双缓冲)。我新建了两个canvas对象,一个当作画布,一个不显示用作buffer。结果我发现,使用buffer反而大大降低了绘制速度。后来我通过toDataURL方法把buffer数据保存到Image中,绘制时使用Image对象作为源,这样速度就感觉很好了。

查网上资料,说buffer大小能满足缓冲图案大小就行,太大了会引起性能下降,但就算我把大小设置成刚刚好,依然是慢的要死。只有转成Image才会快起来。

请问为什么用canvas缓冲图案如此慢,而Image快?

阅读 973
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题