2011-08-11 35 views
3

私はHTML5キャンバス要素として描画インターフェース(PaintやPhotoshopなど)を組み込んだアプリケーションを開発しています。HTML5キャンバスとコンテンツのサイズ変更と拡大縮小

ズーム機能をシミュレートするために、キャンバス要素とピクセルデータを動的にサイズ変更したいと考えています。私の考えは、キャンバス要素を含む何らかのビューポートを持っています。キャンバスとその内容をビューポート内でサイズ変更することができます(同じサイズのままです)。

どのようにこの機能を実装するのが最適でしょうか?

+0

下の関連リンクあなたはその後、キャンバスのサイズを変更し、伸ばしているスクリーンショットを描き、 '.toDataURLを()'使用して「スクリーンショット」を救うことができます。ただし、キャンバスはピクセル化されないため、ぼやけて見えます。 – pimvdb

+0

可能な複製:http://stackoverflow.com/questions/331052/how-to-resize-html-canvas-element –

答えて

9

これは、別のキャンバスを導入して描画面からディスプレイを分離することで、非常に簡単に行うことができます。

var canvas = document.createElement('canvas'); 

を使用して非表示のキャンバスを作成してから、このキャンバスにシーン全体を描画します。次に、このキャンバスの内容を、drawImageメソッド(画像の代わりにキャンバスを受け取る可能性があります)を使用して実際にユーザーに見える別のキャンバスに描画します。シーンを拡大表示する場合は、非表示キャンバスのソース矩形(sysxswshのパラメータはdrawImage)をビジュアルキャンバスに描画するときに小さくします。これにより、ズーム効果が得られます。

しかし、キャンバスに各フレームを完全に再描画しても、キャンバスオブジェクトのscale methodを見ることができます。

+0

ありがとうございました。 –

+0

私は+1をしています:) –

+0

私は試しましたが、私のアカウントはまだそれが可能だとは思わない。 :( あなたはまだうまくいった仕事の満足を得る:D –

関連する問題