在查找如何在 a 上绘制重复的图像背景<canvas>
时(是的,我是新手<canvas>
),我看到有两种方法可以做到:
drawImage()
在for
循环中使用手动重复图像<canvas>
- 使用 创建一个图案
context.createPattern()
,将<canvas>
'sfillStyle
设置为该图案,然后使用fillRect
绘制一个包含整个图案的矩形<canvas>
。
显然,我做的第一件事是创建一个 JSPerf 测试,看看哪个更快(“Premature Optimisation™ - It Works”):
似乎这种drawImage()
方式往往胜过这种createPattern()
方式,尽管随着更新的浏览器的不同,这种差异减少了,并且似乎在最新的情况下消失了。
不过,我希望这createPattern()
条路会更快。我假设createPattern()
基本上会做与手动方法相同的事情drawImage()
,但是内置,会做得更快。
任何想法为什么该createPattern()
方法较慢?createPattern()
除了在其应用的形状上重复绘制图案图像之外,还会做其他事情吗?我在编写测试时是否犯了一个错误?