我认为putImageData比drawImage快,但我需要证明这一点。
我猜这和Flash以及它的位图和BitmapData类是一样的。基本上,BitmapData促进了位图对象中数据的非可视化提取,这使得对其进行非常容易和快速的操作成为可能。
我猜在高性能情况下,例如游戏,从每个图像(例如,每个精灵)中提取ImageData并将其缓存到"assets“字典中是比将精灵本身一遍又一遍地绘制到画布上更好的解决方案。
有人能证明这一点吗?
发布于 2011-10-11 15:50:02
我不把这个测试放在一起,但您可以清楚地看到在画布和图像中使用drawImage()的性能以及putImageData()的性能:
http://jsperf.com/canvas-drawimage-vs-putimagedata/3
到目前为止,drawImage()比putImageData()快得多。据我所知,这不是故意的,浏览器开发人员正在考虑改善性能差距。
发布于 2013-09-27 04:08:54
对于较大的画布,我发现它没有太大的不同,但在复制画布方面,putImageData绝对没有drawImage那么好。
下面是我使用的一些测试用例:http://jsperf.com/canvas-size-test-case/3
不管我实际复制的数据有多大,我最终都在源画布的整体大小上遇到了一些性能问题。
https://stackoverflow.com/questions/7721898
复制相似问题