1

キャンバス要素のクローンを作成する方法を探しています。この質問に基づいて、私は次のようなものを試しました。

var canvasContext = $("#canvas1")[0].getContext("2d");
canvasImageData = canvasContext.getImageData(0, 0, canvasContext.canvas.width, canvasContext.canvas.height);
$("#canvas2")[0].getContext("2d").putImageData(canvasImageData, 0, 0);

ただし、IE8以下のサポートも必要です。画像データ方式をサポートしていないexcanvasを使用しています。

excanvasを使用するときにこれを達成する別の方法はありますか?

4

2 に答える 2

1

運が悪かった、ごめんなさい。

他の唯一の方法は、 `drawImageを使用することです。これを使用して、あるキャンバスを別のキャンバスに描画できるためです。

drawImageただし、そもそも描画する「実際の」キャンバスがないため、の特定の機能はサポートされていません(キャンバスのように見えるふりをしているVMLの束だけです)。ここにその機能のリクエストがあります:

http://code.google.com/p/explorercanvas/issues/detail?id=92

しかし、それがexcanvasに入る可能性は非常に低いです。Excanvasは2010年3月20日以降更新されていません。キャンバスではなく、フルオンのSVG / VMLに移行するか、IE8のサポートを終了することを検討することを強くお勧めします。

于 2011-11-05T05:21:26.043 に答える
0

コンテンツを保存してみてくださいexcanv.getContext('2d').element_.innerHTML。これを再利用すると、コンテキストパスの内容が複製されます。

サンプルコード:

var excanv = G_vmlCanvasManager.initElement(node);

//excanvのコンテキストでグラフを作成します....etc。

var excanv2 = G_vmlCanvasManager.initElement(node2); excanv2.getContext( '2d')。element_.innerHTML = excanv.getContext( '2d')。element_.innerHTML;

于 2015-05-29T20:09:26.217 に答える