在服务器上存储和加载fabricjs canvas

时间:2015-01-01 04:23:45

标签: javascript serialization upload server fabricjs

我正在创建一个使用fabricjs画布绘制漫画的应用程序。 Canvas包含一些对象,如矩形,svg对象和jpeg图像。编辑完成后,画布需要存储在服务器(nodejs)中,稍后应由创建者或其他查看者从服务器重新加载。 我以为我可以将canvas序列化为svg字符串并在服务器上存储svg字符串,并将画布中存在的图像逐个上传到服务器。稍后,加载svg字符串将图像url替换为下载的图片并重新加载画布。

以下是我的问题:  1-这是实现目标的正确方法吗?  2-我正在做所有这些因为我的画布将根据用户设备(显示器,智能手机......)具有不同的大小,因此,我选择使用svg进行扩展。但是,我不确定如何将原始svg字符串缩放到新画布。

谢谢,

1 个答案:

答案 0 :(得分:0)

  1. 不要保存到SVG。 SVG用于出口。致电myCanvas.toObject()
  2. 如果您只是将SVG用作画布的持久性格式,那么不确定您将如何利用SVG的可伸缩性。但如果您要在SVG中进行渲染,那么这是有道理的。
  3. 您可能正在过度思考图像解决方案。用户如何首先在画布上放置图像?我这样做的方法是让他们将图像上传到我的服务器。然后我让他们从图像浏览器中选择图像。他们选择的图片已经有了一个URL,因此在存储/恢复时没有什么可做的。