0

表示されているキャンバスにある部分だけでなく、KineticJS レイヤー (またはグループ) 全体を「エクスポート」する方法があるかどうかは誰にもわかりませんか?

ユーザーがキャンバス内の画像を拡大縮小できるシンプルな「画像エディター」があります。画像は、表示されているキャンバスのステージ領域よりも意図的に拡大縮小でき、ユーザーは画像セクションをビューにパンできます。問題は、(現在 toDataURL を使用して) 画像をエクスポートするときに、表示されているキャンバス ステージの画像のセクションのみが保存され、画像の残りの部分が破棄されることです。

可視キャンバス ステージでレンダリングされたものだけでなく、レイヤー全体を効果的に保存したいと考えています。

4

1 に答える 1

1

まあ、一時的な回避策が必要です。

.toDataURL() を実行する関数または何かがあると仮定します。

toDataURL() を実行する直前に、ステージのサイズまたはスケールを変更し、保存してから元に戻します。

例:

 function save(){
     stage.setScale(newX,newY); //rescale to new values
     stage.setWidth(newWidth);
     stage.setHeight(newHeight);

     stage.toDataURL();   // <----- save

     stage.setScale(oldX,oldY); //rescale to old values
     stage.setWidth(oldWidth);
     stage.setHeight(oldHeight);
 }

これにより、ステージのサイズが変更または再スケーリングされ、元の状態に戻ります。

于 2013-02-21T17:10:35.743 に答える