Canvas 带有结构画布的FileSaver.js

Canvas 带有结构画布的FileSaver.js,canvas,meteor,fabricjs,filesaver.js,Canvas,Meteor,Fabricjs,Filesaver.js,我试图将FileSaver.js与Fabric.canvas对象一起使用,但Fabric js似乎没有blob选项 顺便说一下,我正在使用Meteor框架 如何在不使用basic canvas.todata URL的情况下导出结构画布?” 谢谢:)布料没有Blob的直接选项。但是您可以通过canvas.toJSON()将其导出到json中,也可以通过canvas.toDataURL()将其导出到image中。然后,只需这样做,就可以转换blob中的数据 导出布块中的织物画布: var dat

我试图将FileSaver.js与Fabric.canvas对象一起使用,但Fabric js似乎没有blob选项

顺便说一下,我正在使用Meteor框架

如何在不使用basic canvas.todata URL的情况下导出结构画布?”


谢谢:)

布料没有Blob的直接选项。但是您可以通过
canvas.toJSON()
将其导出到json中,也可以通过
canvas.toDataURL()
将其导出到image中。然后,只需这样做,就可以转换blob中的数据

导出布块中的织物画布

  var data = JSON.stringify(canvas.toJSON()),           
        blob = new Blob([data], {type: "octet/stream"});

  var data = canvas.toDataURL(),           
        blob = new Blob([data], {type: "octet/stream"});

您可以通过使用本机Canvas元素来实现这一点

var canvas=newfabric.canvas(“canvas”);
// ... 你的代码在这里。。。
canvas.getElement().toBlob(函数(blob){
saveAs(blob,“canvas.png”);
});

如果你想在Safari中使用它,你可以使用Sebastian Tschan。

,文件服务器的github。你可以轻松地将dataURI字符串转换为blob。谢谢,这是一个非常好的主意。问题是它不适用于Safari…对我来说,png作为base64数据输出。所以它是一个无效的图像文件。调试后,我注意到变量blob2的data属性与变量data2具有相同的base64数据集。blob函数不是应该将这个base64转换成二进制数据吗?