假设我将.ai
个文件保存为.svg
。现在我想将此文件中的所有向量移动到Raphael以使用JavaScript操作它们。
我该怎么办?有哪些方法可以实现这一目标?请写下任何利弊,以便用户能够以他们的意见选择最佳。
答案 0 :(得分:4)
我使用命令行中的节点进行转换并将其保存到文件
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将使用它。