在paper.js svg导出很慢

时间:2015-10-14 11:25:18

标签: performance svg export paperjs

我正在使用具有大量路径(thousends)的system("ls /") app bin boot dev etc home initrd.img lib lib64 lost+found media mnt opt proc RHIPE root run sbin srv sys tmp usr var vmlinuz 。 这需要很长时间,有时脚本会冻结。 另一方面,project.exportSVG({asString: true})功能非常快。

我认为这可能是因为exportSVG创建了一个DOM节点,然后从中创建了一个字符串。因为我只需要字符串,就像一个简单的字符串输出就可以了。 有没有办法做到这一点?

我使用SVG字符串制作Blob并通过https://github.com/eligrey/FileSaver.js/

保存
project.exportJSON()

这是我在http://sketch.paperjs.org

运行的测试脚本
var svg = project.exportSVG({asString: true});
var blob = new Blob([svg], {type: "image/svg+xml;charset=utf-8"});
saveAs(blob, 'test.svg'); 

1 个答案:

答案 0 :(得分:0)

我没有给你解决方案,但我可以告诉你原因。看看这个草图:minimal example你可以看到导出JSON只是纸质数据结构和状态的JSON表示,而SVG需要将纸张输出转换为SVG格式。 Júrg在优化转换方面做得非常好,因此虽然可能会有一些小的增量收益,但转换不太可能接近纸质数据结构的原始转储。