将SVG文件转换为Raphael的可能方法是什么?

时间:2013-01-10 23:04:34

标签: javascript svg raphael

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

我该怎么办?有哪些方法可以实现这一目标?请写下任何利弊,以便用户能够以他们的意见选择最佳。

5 个答案:

答案 0 :(得分:4)

几个月前我不得不做同样的事情。我使用了rappar

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

node rappar.js test.svg >test.js

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

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

应该是

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

除此之外它还有效。

答案 1 :(得分:3)

我找到了一些简单的转换器here

<强>优点: 它非常简单直接 - 您上传文件,并获得生成的代码。你甚至可以看到它的预览。当您加载非常简单的.svg时,它可以正常工作,您可以轻松编辑代码,但是......

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

无论如何,这是我找到的唯一一个,最后(经过一些工作)你可以实现你想要的。使用它的最佳方式是当您按部分上传.svg时,以避免泛滥的代码。

答案 2 :(得分:3)

你可以循环遍历SVG的节点并将它们逐个写入Raphaël对象,但除非你正在处理非标准元素类型/属性,否则你最好使用一个Raphaël插件来导入SVG一个-line命令。如:

答案 3 :(得分:2)

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

优点: 不需要太多代码。

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

答案 4 :(得分:-2)

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