繰り返し画像の背景を<canvas>
(うん、私は初めてです<canvas>
)に描画する方法を調べているときに、2つの方法があることがわかりました。
- ループで使用
drawImage()
してfor
、画像を手動で繰り返します<canvas>
- を使用してパターンを作成し、そのパターンに'sを
context.createPattern()
設定してから、を使用して、全体にパターンを含む長方形を描画します。<canvas>
fillStyle
fillRect
<canvas>
明らかに、私が最初に行ったのは、どちらが速いかを確認するためのJSPerfテストを作成することでした(「PrematureOptimisation™—それは機能します」)。
違いは最近のブラウザで減少し、最新では消えるように見えますがdrawImage()
、方法は方法を上回る傾向があるようです。createPattern()
createPattern()
しかし、私はその方法がもっと速くなることを期待していました。基本的createPattern()
には手動の方法と同じことをすると思いましたdrawImage()
が、組み込みの方が速くなります。
createPattern()
メソッドが遅い理由はありますか?createPattern()
適用された形状全体にパターン画像を繰り返し描画する以外のことはありますか?テストを書くときに間違えたことがありますか?