あるキャンバス要素からピクセル情報を取得して操作し、別のキャンバス要素に描画しようとしています。同じキャンバスに描画して描画すると、この作業を行うことができました。また、特定の順序で機能しますが、必要な順序ではありません。
アイデアは、ピクセルを取得して操作し、メイン キャンバスに描画できる画像情報を保持する非表示のキャンバスを作成することです。これは、myCanvas から myCanvas2 に描画するときに機能しますが、その逆では機能しません。データを取得している画像はキャンバスである必要はありません。実際、使用するリソースをできるだけ少なくしたいので、キャンバスである必要はありません。
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<canvas id="myCanvas2" width="800" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
var image = new Image();
image.src = 'http://timsterrible.net/gaming/pixelsweeper/images/bariumStrip.png';
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="red";
ctx.fillRect(10,10,50,50);
var canRaw = document.getElementById("myCanvas2");
var canvas = canRaw.getContext("2d");
image.onload = canvas.drawImage(image, 0, 0);
function copy()
{
var imgData=ctx.getImageData(32,0,32,32);
canvas.putImageData(imgData,10,70);
}
</script>
<button onclick="copy()">Copy</button>
</body>
</html>
私の目標は、化学物質の流出が混ざり合ったときに、それらを別の化学物質にフェードアウトさせることです。今のところ、それらは非常に堅実で、ここで遊んでいるとわかります。
この混乱を招く煩わしさについて、ご協力いただきありがとうございます。
http://timsterrible.net/gaming/pixelsweeper/stack/notmixing.png