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