2015-12-01 29 views
3

我试图用Fabric.canvas对象使用FileSaver.js,但似乎Fabric js没有blob选项。FileSaver.js与织物画布

我正在使用Meteor框架。

如何在不使用基本canvas.toDataUrl的情况下导出Fabric画布?

谢谢:)

+1

https://github.com/eligrey/FileSaver.js,FileServer的github – Ynnad

+1

你可以很容易地将你的dataURI字符串转换为blob http://stackoverflow.com/questions/4998908/convert-data-uri- to-file-then-append-to-formdata/5100158#5100158 – Kaiido

回答

1

面料没有Blob的直接选项。但是,您可以通过canvas.toJSON()canvas.toDataURL()以json格式导出它。然后你转换blob中的数据只是做这个。

出口布帆布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"}); 

See in fiddle

+0

谢谢,这是一个不错的主意。问题是,它不适用于Safari ... – Ynnad

1

您可以通过使用本地Canvas元素实现这一目标。

var canvas = new fabric.Canvas("canvas"); 

// ... your code here ... 

canvas.getElement().toBlob(function(blob) { 
    saveAs(blob, "canvas.png"); 
}); 

如果你想这与Safari浏览器,则可以使用塞巴斯蒂安Tschan Javascript Canvas to Blob polyfill