2013-02-21 20 views
0

是否有人知道是否有辦法'導出'整個KineticJS圖層(或組)而不僅僅是可見畫布中的部分?可能導出KineticJS完成層

我有一個簡單的'圖像編輯器',允許用戶在畫布上縮放圖像,圖像可以故意縮放比可見的畫布舞臺區域更大,從而允許用戶將圖像部分平移到視圖中。問題是當他們來導出圖像(當前使用toDataURL)時,只有可見畫布舞臺中的圖像部分被保存,圖像的其餘部分將被丟棄!

我有效地想要保存整個圖層,而不僅僅是在可見畫布階段呈現的內容。

回答

1

嗯,你需要一個臨時的解決方法。

我假設你有一個函數或者是.toDataURL()。

就在您執行dataURL()之前,更改舞臺大小或比例,然後保存,然後再更改。

例子:

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); 
} 

這將調整或重新調整你的舞臺,然後將它放回它的方式。

+1

你明白了。您需要運行'stage.draw()'來正確獲取圖像,而不需要來回設置寬度/高度。 – allenhwkim 2013-02-21 17:22:53