2013-02-21 85 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