2枚のcanvasを結合したいと思っています。
ボタン押下をトリガーに一応動きましたが、ダブルクリックのような動作でしか動かず、しかも1枚のcanvasは2重に描画されているような感じです。
※idの数字が順不同でわかりにくいと思いますがご容赦ください。
html
1 <div id="canvasPare"> 2 <canvas id="mycanvas"></canvas> 3 <canvas id="mycanvas2"></canvas> 4 </div> 5 <canvas id="mycanvas3"></canvas> 6 <button id="ketugou" onclick="ketugou()">テスト</button> 7 8<!-- script抜粋 --> 9 <script> 10 var canvas2 = document.getElementById("mycanvas2"); 11var ctx2 = canvas2.getContext("2d"); 12canvas2.style.top = "0px"; 13canvas2.width = width-15; 14canvas2.height = height/2 +10; 15canvas2.style.zIndex="-1"; 16ctx2.fillStyle = "rgba(" + [245,236,137, 0.9] + ")"; 17ctx2.fillRect(0, 0, canvas2.width, canvas2.height); 18 </script>
つまりmycanvas2に半透明な背景を描き、mycanvasにタッチやマウスで自由に何かを描画する。その2枚を結合しmycanvas3に再描写という流れです。
ダブルクリックをすると確かに結合されたような形になりますが背景色が強く、2枚重なっているのでは?という感じです。
javascript
1function ketugou(){ 2 const canvasImg = document.getElementById("mycanvas"); 3 const imgdata = canvasImg.toDataURL(); 4 const canvasImg2 = document.getElementById("mycanvas2"); 5 const imgdata2 = canvasImg2.toDataURL(); 6 const canvas3 = document.getElementById("mycanvas3"); 7 const ctx3 = canvas3.getContext("2d"); 8 const image2= new Image; 9 image2.src=imgdata2; 10 ctx3.drawImage(image2,0,0, canvas3.width, canvas3.height); 11 const image= new Image; 12 image.src=imgdata; 13 ctx3.drawImage(image,0,0, canvas3.width, canvas3.height); 14 }
分かりにく質問で申し訳ありませんがどなたかご教示いただけないでしょうか。
あなたの回答
tips
プレビュー