Javascript 在服务器上存储和加载fabricjs画布

Javascript 在服务器上存储和加载fabricjs画布,javascript,serialization,upload,server,fabricjs,Javascript,Serialization,Upload,Server,Fabricjs,我正在创建一个应用程序,它使用fabricjs画布绘制漫画。画布包含一些对象,例如矩形、svg对象和jpeg图像。编辑完成后,画布需要存储在服务器(nodejs)中,稍后应由创建者或其他查看器从服务器重新加载。 我想我可以将画布序列化为svg字符串,将svg字符串存储在服务器上,并将画布中存在的图像逐个上传到服务器。稍后,加载svg字符串并用下载的图片替换图像url,然后重新加载画布 以下是我的问题: 1-这是实现我目标的正确方式吗? 2-我之所以这么做,是因为我的画布将根据用户设备(显示器、智

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

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

谢谢

  • 不要保存到SVG。SVG用于导出。调用myCanvas.toObject()
  • 如果只是将SVG用作画布的持久化格式,则不确定如何利用SVG的可伸缩性。但是,如果要在SVG中进行渲染,那么这是有意义的

  • 您可能过度考虑图像解决方案。用户首先要如何在画布上放置图像?我这样做的方式是让他们上传图像到我的服务器。然后我让他们从图像浏览器中选择图像。他们选择的图像已经有一个URL,因此在存储/恢复时没有什么可做的。

    导出到对象或JSON如何有用或可伸缩?比如说一个对象是50,50,宽100,高200,在一个更大的屏幕上,当我加载存储的json时,它仍然是相同的大小。所以,我想,JSON应该管理缩放,svg也可以。实际上,我不知道怎么做。现在我只是渲染svg。用户可能会在画布上放这么多图片,我不能先上传所有内容。这是一个移动应用程序,所以图片来自摄像头我不能浪费用户的时间和数据上传这么多东西,然后最后选择一个。如果是HTML和JS,那么你必须使用文件API从图像输入中获取图像字节,并创建一个以数据URI为源的图像元素,对吗?如果是这样,那么图像数据已经在JSON(或SVG——我不记得是否可以将数据URI序列化为SVG)中了