2

特に私はこの例を持っていますが、うまくいかないようです:

<!DOCTYPE html>
<html>
<body>

<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
your browser does not support the canvas tag </canvas>

<canvas id="myCanvas2" width="300" height="150" style="border:1px solid #d3d3d3;">
your browser does not support the canvas tag </canvas>

<script type="text/javascript">

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");

var c2=document.getElementById("myCanvas2");
var ctx2=c2.getContext("2d");

ctx.strokeRect(5,5,25,15);
var imageData = ctx.getImageData(0,0,c.width, c.height);


ctx2.putImageData(imageData, 100, 100);
ctx2.scale(2,2);
</script> 

</body>
</html>

rectは2番目のキャンバスでスケーリングされるべきではありませんか?

4

2 に答える 2

2

次のコードを試してください。

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");

var c2=document.getElementById("myCanvas2");
var ctx2=c2.getContext("2d");

ctx.strokeRect(5,5,25,15);

ctx2.scale(2, 2);
ctx2.drawImage(c, 10, 10);
于 2012-07-09T08:31:34.083 に答える
-2

画像をキャンバスに「書き込む」前に、変換を行う必要があります。

ctx2.scale(2,2);
ctx2.putImageData(imageData, 100, 100);

その後、すべてが正常に動作するはずです。

于 2012-10-12T10:38:27.753 に答える