使用canvas元素作为图像缓冲区更有利,或者将img元素用作缓冲区更有利吗?

时间:2011-05-30 10:25:24

标签: javascript html5 canvas

我想在画布上制作大量带动画的动画;使用canvas元素作为图像的缓冲区更有利(这样我们就不必再调整大小)或者将img元素用作缓冲区更有利吗?

或者实际上是否有一种更好的方法,如果性能是我应该做的最重要的事情而且我缺少必须做的事情?

另外,为什么“清理”画布这么慢的操作呢?我的背景是针对Windows Phone 7的xna编程,“清除”整个屏幕是最快的操作之一。

另外,我应该通过设置 width = width 来“清除”画布,还是应该执行 drawRect(0,0,width,height)

1 个答案:

答案 0 :(得分:1)

您应该使用canvas元素作为转换后图像的缓冲区,并将drawImage调用与整数坐标对齐。一旦需要变换图像,软件画布实现就会变慢(因为transforming = resampling = slow。)

请参阅:http://jsperf.com/canvas-drawimage

清除画布,使用clearRect:http://jsperf.com/canvas-clear-speed