Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将SVG文件转换为Raphael的可能方法有哪些_Javascript_Svg_Raphael - Fatal编程技术网

Javascript 将SVG文件转换为Raphael的可能方法有哪些

Javascript 将SVG文件转换为Raphael的可能方法有哪些,javascript,svg,raphael,Javascript,Svg,Raphael,假设我将一些.ai文件保存为.svg。现在我想把这个文件中的所有向量移动到Raphael,以便使用JavaScript对它们进行操作 我怎么做?实现这一目标的可能途径是什么?还请写下任何优点和缺点,以便用户能够根据自己的意见选择最佳的方式。我找到了一些简单的转换器 优点: 这是非常简单和直接的-你上传文件,并得到生成的代码。你甚至可以看到它的预览。当您加载真正简单的.svg时,它工作得非常好,您可以轻松地编辑代码,但是 缺点: 但最大的问题是代码有点混乱。所以,如果你加载更大的文件(100+个向

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


我怎么做?实现这一目标的可能途径是什么?还请写下任何优点和缺点,以便用户能够根据自己的意见选择最佳的方式。

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

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

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


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

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

这一个对我来说非常有效 在安装rappar依赖项时,需要删除Node.js代码才能使其正常工作

优点: 不需要太多代码

缺点:
在较大的SVG上可能会有点慢。您可能想考虑用另一个拉斐尔插件将其保存到JSON中,以便下次加载更快。

< p>您可以循环遍历SVG的节点并逐个将它们写入RAPHA对象。但是,除非您处理的是非标准的元素类型/属性,否则最好使用Raphaël插件,使导入SVG成为单行命令。例如:


    • 几个月前,我不得不做同样的事情。我曾经

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

      node rappar.js test.svg >test.js
      
      test.js现在包含向量。我唯一发现的是rappar的第537行

      var files = process.ARGV.slice(0);
      
      应该是

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

      除此之外,它还发挥了作用。

      好的一点-您可以以文本文件的形式打开
      .svg
      ,并逐路径、逐属性地复制它。。。这将需要一些时间,但是的,确实是一种可能的方式。就我所知,像上面提供的那样的编程解决方案要好得多,SVG坐标与Raphael的不一样,这就是为什么我们需要一个转换器。不能简单地从一个脚趾到另一个脚趾复制和粘贴坐标。这难道不是人们来到这个页面的原因吗?了解如何转换它们吗?+1是Raphael唯一的解决方案——比让节点参与进来要好得多,特别是对于更新的程序,他们完全同意@ChrisWilson。没有节点解决方案最适合大多数用户,这就是我接受这个答案的原因。如果您想操纵svg的子元素,这将毫无帮助。。。我更喜欢rappar解决方案。我认为看到网站的实际名称和地址很好,但在你的帖子中看不到。好了,准备好了,拉斐尔,