假设我将一些.ai
文件保存为.svg
. 现在我想将所有向量从这个文件移动到 Raphael 以使用 JavaScript 操作它们。
我该怎么做?有哪些可能的方法来实现这一目标?也请写下任何优点和缺点,以便用户能够以他们认为的方式选择最好的。
假设我将一些.ai
文件保存为.svg
. 现在我想将所有向量从这个文件移动到 Raphael 以使用 JavaScript 操作它们。
我该怎么做?有哪些可能的方法来实现这一目标?也请写下任何优点和缺点,以便用户能够以他们认为的方式选择最好的。
几个月前我不得不做同样的事情。我用拉帕
我使用命令行中的节点进行转换并将其保存到文件中
node rappar.js test.svg >test.js
test.js 现在包含向量。我唯一找到的是 rappar 的第 537 行
var files = process.ARGV.slice(0);
应该
var files = process.argv.slice(0);
除此之外,它是一种享受。
我在这里找到了一些简单的转换器。
优点:
这真的很简单直接——你上传文件,然后得到生成的代码。你甚至可以看到它的预览。当你加载非常简单.svg
时,它工作得很好,你可以轻松地编辑代码,但是......
缺点:
但它最大的问题是代码有点乱。因此,如果您加载更大的文件(100 多个向量,甚至更多;出于测试目的,我加载了大约 1000 个)。它的名称和结构也不响应层的划分。有时某些图层(您可以在预览中看到)的顺序不正确,因此如果您想看到完全相同的“图像”,您需要浏览代码,查看哪个路径对应于.svg
文件中的哪个对象。
无论如何,这是我找到的唯一一个,最后(经过一些工作)你可以实现你想要的。使用它的最佳方法是逐部分上传 .svg 文件,以避免大量杂乱的代码。
您可以遍历 SVG 的节点并将它们一一写入 Raphaël 对象,但除非您正在处理非标准元素类型/属性,否则最好使用 Raphaël 插件之一,该插件使导入 SVG 成为单行命令. 如:
这对我来说非常有效http://roomandboard.github.com/vectron/ 在https://github.com/DmitryBaranovskiy/rappar安装 rappar 依赖项时,您需要删除 Node.js 代码才能使其正常工作.
优点:不需要太多代码。
缺点:在较大的 SVG 上可能会有点慢。您可能需要考虑使用另一个 Raphael 插件将其保存为 JSON,以便下次加载更快。
所有向量都在文件中,因此您可以将这些路径放入变量字符串,Raphael 将使用它。