Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Farbic.js:有没有办法在Json.stringify(canvas)生成的Json中保存url而不是svg图像的路径?_Javascript_Vue.js_Vuejs2_Fabricjs - Fatal编程技术网

Javascript Farbic.js:有没有办法在Json.stringify(canvas)生成的Json中保存url而不是svg图像的路径?

Javascript Farbic.js:有没有办法在Json.stringify(canvas)生成的Json中保存url而不是svg图像的路径?,javascript,vue.js,vuejs2,fabricjs,Javascript,Vue.js,Vuejs2,Fabricjs,我试图将fabric.js canvas保存到服务器,但是我得到了很多svg图像。我从URL(fabric.loadSVGFromURL)加载了它们。当我使用JSON.stringify(this.canvas)时,它将svg图像的路径保存到JSON中。如果我保存了它们的所有路径,Json文件将太大,因此我想知道是否还有其他方法可以只保存这些SVG图像的url src(我还需要能够将它们加载到画布) 非常感谢 如果您不需要更改svg的路径,您可以将svg用作图像。它的工作原理如下: constc

我试图将fabric.js canvas保存到服务器,但是我得到了很多svg图像。我从URL(fabric.loadSVGFromURL)加载了它们。当我使用JSON.stringify(this.canvas)时,它将svg图像的路径保存到JSON中。如果我保存了它们的所有路径,Json文件将太大,因此我想知道是否还有其他方法可以只保存这些SVG图像的url src(我还需要能够将它们加载到画布)


非常感谢

如果您不需要更改
svg
的路径,您可以将svg用作图像。它的工作原理如下:

constcanvas=newfabric.canvas(“c”{width:600,height:600});
fabric.Image.fromURL(“https://svgsilh.com/svg/309620.svg“,(img)=>{
最小刻度宽度(200);
canvas.add(img);
log(canvas.toJSON());
});

一般来说,您可以,但需要注意加载过程。您需要先加载源文件,然后应用其余的块选项(填充、比例、宽度、高度)。你有提琴来支持你吗?@MariusTurcu谢谢你的帮助,但我决定改用fabric.Image.fromURL。唯一的问题是,通过这种方式,SVG必须具有宽度和高度才能显示在织物画布上。我必须要求艺术组提供具有宽度和高度的图像。这似乎可行,但一些SVG图像没有宽度和高度属性。如果没有这两个属性,画布无法使用Image.fromURL显示它们。除了更改路径代码外,还有什么方法可以强制图像具有宽度和高度?我不知道这种方法。在我的项目中,我刚刚将这些属性添加到所有svg图像中。它们等于viewBox值。还有一个问题,我不知道您是否意识到。如果我们使用这种方式显示SVG图像,则在Chrome上只能水平(或垂直)拉伸图像,但在firefox上,您无法更改SVG图像的纵横比。