将canvas元素用作图像缓冲区是更有益还是将img元素用作缓冲区更有益?

问题描述

| 我想用画布上的图像做大量的动画;使用canvas元素作为图像的缓冲区是否更有利(这样我们就不必再次调整大小)?或者将img元素用作缓冲区是否更有益? 还是实际上有更好的方法,如果性能是我应该做的头等大事而我却想念的话,那必须做吗? 另外,为什么“清理”画布的操作如此缓慢?我的背景是Windows Phone 7的xna编程和“清除”整个屏幕是最快的操作之一。 另外,应该通过设置width = width来“清除”画布还是应该执行drawRect(0,0,width,height)?     

解决方法

        您应该将canvas元素用作已转换图像的缓冲区,并在整数坐标上对齐drawImage调用。一旦需要转换图像,软件画布的实现就会变慢(因为转换=重采样=缓慢)。 请参阅:http://jsperf.com/canvas-drawimage 清除画布,使用clearRect:http://jsperf.com/canvas-clear-speed