私は現在このチュートリアルを使用しており、完全に機能していますが、私の唯一の懸念は少し遅いことです. 600x600 のキャンバスがあり、塗りつぶしツールを使用すると、キャンバスを塗りつぶすのに約 2 秒かかります。Microsoft Paint では、このサイズのキャンバスを塗りつぶすのは瞬時であり、そのサイズの 10 倍 (6000x6000) のキャンバスを塗りつぶすのは、約 1 秒で、さらにわずかに短くなります。
これは JavaScript と canvas 要素の単なる制限ですか、それとも MS Paint のようなデスクトップ プログラムの速度に近づくように最適化できますか? Firebug でプロファイリングしたところ、この関数が主なボトルネックの 1 つに思えますが、反復ごとに実行する必要があるため..
function matchStartColor(pixelPos, startR, startG, startB) {
var r = colorLayerData.data[pixelPos];
var g = colorLayerData.data[pixelPos + 1];
var b = colorLayerData.data[pixelPos + 2];
return (r == startR && g == startG && b == startB);
}