0

はい、私は .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 せずに操作する方法はありますか? いいえの場合 - もう一度お尋ねします - なぜですか? セキュリティ上の理由ですか?彼らは私がそのピクセルで何ができると恐れていますか?

ありがとうございました!

4

1 に答える 1