【发布时间】:2020-11-12 18:56:32
【问题描述】:
我在管理面板中使用具有动态大小的织物 JS 创建一个画布,并在其中添加对象,在修改画布后,我将 JSON 数据存储到数据库中(使用:canvas.toJSON())。
现在我在前端显示了一个画布,用于使用数据库中存储的 JSON 数据 (canvas.loadFromJSON(canvasData, this.canvas.renderAll.bind(this.canvas))) 进行编辑。如果我使用画布的相同宽度和高度,它会完美显示。但是由于画布的宽度和高度不同,对象无法显示在正确的位置,有时对象会被切碎。
例如,我在管理员中创建了一个带有1200*1000px 的画布,现在我想将画布数据加载到一个800*500px 画布窗口中,其中的对象位于同一位置。好像原始画布更大,那么我仍然必须将整个画布数据放入前端,因此我需要将画布加载到较小的画布窗口中。
我关注了 Canvas client size in fabric js
var canvas = new fabric.Canvas('c', {width: 640, height: 360});
canvas.setDimensions({width: 1280, height: 720}, {backstoreOnly: true});
如果原始模板大小很大3000*2000px 并适合600*600px 窗口,则使用上述代码
画布中的文本显示非常小,但在从画布生成图像时,它可以正确显示。
看图
See the picture 我怎样才能解决这个问题?提前致谢
【问题讨论】:
-
你找到解决办法了吗?
标签: javascript angular canvas fabricjs