はい、私は .getImageData() について知っています
つまり、いくつかのピクセルを変更する必要があるとしましょう:
var imageData = ctx.getImageData(...);
どうやら、このメソッドは、「本物の」(私の奥深くに隠されている) 画像データの完全に新しいコピーを提供してくれるようです。新しいものを作成する場合:
var imgData2 = ctx.getImageData(.../*same parameters as before*/);
2 つのバッファを比較します。
imageData.data.buffer === imgData2.data.buffer; //false
したがって、ビットマップから新しいコピーを作成するたびに。なんてこった、なぜ?さて、さらに進んでください:
/*...apply some new changes to the imageData in a loop...*/
上記は特にありません。しかし今、これを元に戻す時が来ました:
ctx.putImageData(imageData, ...);
そして、これ自体が新しいループを実行し、私のimageDataをコピーします。
余分な仕事がたくさん!実際の imageData を取得して get/put せずに操作する方法はありますか? いいえの場合 - もう一度お尋ねします - なぜですか? セキュリティ上の理由ですか?彼らは私がそのピクセルで何ができると恐れていますか?
ありがとうございました!