Objective c 哪种SVG到NSBezierPath库/类最好?

Objective c 哪种SVG到NSBezierPath库/类最好?,objective-c,cocoa,svg,nsbezierpath,Objective C,Cocoa,Svg,Nsbezierpath,我正在寻找最好的SVG-to-NSBezierPath解析器,如果类/库只接受一个SVG命令字符串就可以了,下面是一个示例: M 435.722 403.542 h -232.44 v -293 h 232.44 c 0 0 0 35.108 0 81.019 c 0.049 2.551 0.079 5.135 0.154 7.748 c -0.208 15.567 12.1 13.618 19.624 28.192 c 2.584 5.005 5.875 30.5 4.875 34.5 c

我正在寻找最好的SVG-to-NSBezierPath解析器,如果类/库只接受一个SVG命令字符串就可以了,下面是一个示例:

M 435.722 403.542 h -232.44 v -293 h 232.44 c 0 0 0 35.108 0 81.019 c 0.049 2.551 0.079 5.135 0.154 7.748 c -0.208 15.567 12.1 13.618 19.624 28.192 c 2.584 5.005 5.875 30.5 4.875  34.5 c -7 19 -28.707 22.875 -24.653 44.854 c 0 2.667 0 5.31 0 7.923 C 435.722 364.425 435.722 403.542 435.722 403.542 z
类/库不必解析.svg文件本身,但它应该能够处理所有svg命令,并支持相对坐标和绝对坐标(换句话说,它应该与这里的SVG1.1规范完全兼容)


我在web上找到了一些类,但它们都受到限制,并且使用上面的svg命令失败。现在哪种SVG-to-NSBezierPath解析器最好?

我认为类似的东西不可用

但是您自己应该能够非常轻松地解析它,因为命令直接映射到
NSBezierPath
方法

命令放在第一位也很有帮助,因此您可以执行以下操作:

  • 按空格分成数组
  • 获取第一个元素并映射到命令
  • 将下一个
    x
    元素作为参数(
    x
    取决于命令)
  • NSBezierPath

如果字符串很长,您也可以通过流式解析来执行相同的操作。

编写一个程序,使用XML解析器解析SVG文件

这将为您提供一组路径,您可以将这些路径逐个输入到以下代码中:

**确保在上面的页面上查找iOS代码

但是,上述代码仅适用于绝对路径坐标,而不适用于相对路径坐标。Adobe Illustrator仅输出相对路径坐标。您可以在名为sketch的程序中从illustrator打开svg(http://www.bohemiancoding.com/sketch/)导出svg将以绝对路径坐标显示文件

您的路径失败可能是因为它们使用了相对坐标-小c,我发现的大多数脚本都可以转换为绝对坐标或大c


还有,你来了。整个过程并不容易,但它是可行的!我是凭经验说的。

你确定是SVG吗?SVG是一种基于XML的格式。它看起来不像XML…我发布的只是一个形状的命令,正如我写的,如果库支持用这些形状构建NSBezierPath,我就可以了。谢谢,很抱歉我缺乏知识…您是如何实现Elipes的?SVG中描述try的方式与iOS/Cocoa方式非常不同。有一个几乎所有其他东西的实现