我正在使用FabricJs创建在线图像编辑器。
这很简单,可以执行以下操作:缩放,旋转,flipX,撤消,重做。
我首先尝试使用toJSON和fromJSON,但是我看到当用户单击撤消按钮时,fabricjs重新加载图像,而且返回console.log
的配置对象也很大,想要将所有步骤存储在数据库中。
我试图创建自己的配置对象,仅存储以下属性:
{ filters: FabricFilter[]; rotation: number; flipX: boolean; position: { top: number, left: number }; zoom: number; }
单一鼠标事件是当用户在画布中移动/调整图像时,所有其他操作均以编程方式进行。
我遇到的问题是,当用户旋转图像然后尝试应用滤镜时, 旋转丢失,或者图像超出了画布。
我在这里放置一些代码:
setConfig(canvasEl, imageEl, config) { if (config.hasOwnProperty('zoom')) { canvasEl.setZoom(config.zoom); } if (config.hasOwnProperty('flipX')) { imageEl.flipX = config.flipX; } if (config.hasOwnProperty('position')) { imageEl.top = position.top; imageEl.left = position.left; } if (config.hasOwnProperty('rotation')) { imageEl.angle = rotation; } if (config.hasOwnProperty('filters')) { imageEl.filters = config.filters; imageEl.applyFilters(); } }
问题是我不知道如何存储a
的配置
布料画布(与toJSON,loadFromJSON,
但属性较少),然后根据存储的配置更新canvas对象。
任何帮助将不胜感激。 也许我没有很好地解释我的问题,所以如果你们中的任何一个人不懂某事,我将非常乐意回答您的问题并编辑帖子。
谢谢