3

假设我将一些.ai文件保存为.svg. 现在我想将所有向量从这个文件移动到 Raphael 以使用 JavaScript 操作它们。

我该怎么做?有哪些可能的方法来实现这一目标?也请写下任何优点和缺点,以便用户能够以他们认为的方式选择最好的。

4

5 回答 5

4

几个月前我不得不做同样的事情。我用拉帕

我使用命令行中的节点进行转换并将其保存到文件中

node rappar.js test.svg >test.js

test.js 现在包含向量。我唯一找到的是 rappar 的第 537 行

var files = process.ARGV.slice(0);

应该

var files = process.argv.slice(0);

除此之外,它是一种享受。

于 2013-01-10T23:26:32.773 回答
3

我在这里找到了一些简单的转换器。

优点: 这真的很简单直接——你上传文件,然后得到生成的代码。你甚至可以看到它的预览。当你加载非常简单.svg时,它工作得很好,你可以轻松地编辑代码,但是......

缺点: 但它最大的问题是代码有点乱。因此,如果您加载更大的文件(100 多个向量,甚至更多;出于测试目的,我加载了大约 1000 个)。它的名称和结构也不响应层的划分。有时某些图层(您可以在预览中看到)的顺序不正确,因此如果您想看到完全相同的“图像”,您需要浏览代码,查看哪个路径对应于.svg文件中的哪个对象。

无论如何,这是我找到的唯一一个,最后(经过一些工作)你可以实现你想要的。使用它的最佳方法是逐部分上传 .svg 文件,以避免大量杂乱的代码。

于 2013-01-10T23:04:34.337 回答
3

您可以遍历 SVG 的节点并将它们一一写入 Raphaël 对象,但除非您正在处理非标准元素类型/属性,否则最好使用 Raphaël 插件之一,该插件使导入 SVG 成为单行命令. 如:

于 2013-01-10T23:17:28.487 回答
2

这对我来说非常有效http://roomandboard.github.com/vectron/https://github.com/DmitryBaranovskiy/rappar安装 rappar 依赖项时,您需要删除 Node.js 代码才能使其正常工作.

优点:不需要太多代码。

缺点:在较大的 SVG 上可能会有点慢。您可能需要考虑使用另一个 Raphael 插件将其保存为 JSON,以便下次加载更快。

于 2013-01-10T23:12:57.547 回答
-2

所有向量都在文件中,因此您可以将这些路径放入变量字符串,Raphael 将使用它。

于 2013-01-10T23:06:50.943 回答