Canvas 将画布数据拟合到paperjs中的另一个画布
我正在尝试将一张Canvas 将画布数据拟合到paperjs中的另一个画布,canvas,paperjs,Canvas,Paperjs,我正在尝试将一张paperjs画布放入另一张画布。我正在使用importJSON将画布导入当前paperjs画布对象。但是,两张画布的大小不同,因此,并非所有内容都可见。我试图设置paperjs项目的视图,但没有成功。这就是我所尝试的: canvasObj.project.importJSON(tabData.dataUrl); canvasObj.project.view.viewSize = new paper.Size(window.innerWidth - this.canvasWidt
paperjs
画布放入另一张画布。我正在使用importJSON
将画布导入当前paperjs画布对象。但是,两张画布的大小不同,因此,并非所有内容都可见。我试图设置paperjs项目的视图,但没有成功。这就是我所尝试的:
canvasObj.project.importJSON(tabData.dataUrl);
canvasObj.project.view.viewSize = new paper.Size(window.innerWidth - this.canvasWidthSubtract, window.innerHeight - this.canvasHeightSubtract);
在这里,我首先使用
importJSON
加载画布并设置视图。但是,并非所有内容都可见。如何将importJSON的内容适应画布。您只需调整导入层的大小,以适应第二个画布的边界即可
您可以使用如下所示的方法轻松完成此操作
const imported = project.importJSON(`[["Layer",{"applyMatrix":true,"selected":true,"children":[["Path",{"applyMatrix":true,"selected":true,"segments":[[351.69873,371.5],[395,296.5],[438.30127,371.5]],"closed":true,"fillColor":[0.91373,0.91373,1]}],["Path",{"applyMatrix":true,"selected":true,"segments":[[479.54915,481.55283],[454.54915,463.38926],[445,434],[454.54915,404.61074],[479.54915,386.44717],[510.45085,386.44717],[535.45085,404.61074],[545,434],[535.45085,463.38926],[510.45085,481.55283]],"closed":true,"fillColor":[0.91373,0.91373,1]}]]}]]`)
const layer = imported.pop()
layer.fitBounds(view.bounds)
上面的示例导入通过导出的JSON,然后调整其大小,使其始终符合导入的视图边界/大小。我在importJSON的返回类型中没有看到
pop
方法importJSON
返回一个类型Item
,它似乎没有pop
定义,但感谢您建议fitboods
,它对我的作用如下:canvasObj.backgroundLayer.fitboods(canvasObj.project.view.bounds)
,我已经将不同的层存储在一个canvasObj
@Noober中,这取决于您导入的内容,在我的例子中,我导入了一个数组
,因此得到了一个数组,该数组将层
作为第一项,我必须首先弹出数组。