哪个是NSBezierPath库/类最好的SVG?

问题描述:

我正在寻找最好的SVG到NSBezierPath分析器,它的确定,如果类/库只需要的SVG命令字符串,这里有一个例子:哪个是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 

类/库不neccessarily有解析.svg文件本身,但它应该能够处理所有的SVG命令,支持相对和绝对坐标(换句话说,它应该完全兼容SVG 1.1规范)。

我在网上发现了一些类,但它们都是有限的,而且上面的svg命令失败了。最近SVG到NSBezierPath解析器的最佳时间是?

+1

你确定它是SVG吗? SVG是一种基于XML的格式。它看起来不是XML ... – Yuji

+0

我发布的内容只是一种形状的命令,因为如果库支持从这些形式中构建一个NSBezierPath,我写它就足够了。 – Robin

+0

谢谢,对于我缺乏知识感到抱歉... – Yuji

我不认为这样的东西可用。

但是你应该能够很容易地解析你自己,因为这些命令直接映射到NSBezierPath方法。

这也是有帮助的,该命令是第一位的,所以你可以做到以下几点:

  • 分成数组用空格
  • 采取第一个元素,并映射到命令
  • 拿下x元素作为参数(x根据命令而知)
  • 调用匹配方法NSBezierPath

如果字符串很长,也可以通过流解析来实现。

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

这会给你的路径数组,你可以通过一个养活一成以下代码:

https://www.touchnoc.com/one_way_ticket_from_svg_to_nsbezierpath

**请一定要认准上面的页面上适用于iOS的代码。

但是,上面的代码仅适用于绝对路径坐标而不是相对路径坐标。 Adobe Illustrator只输出相对路径坐标。你可以从一个名为sketch的程序(http://www.bohemiancoding.com/sketch/)从illustrator中打开你的svg,然后导出svg将以绝对路径坐标给你的文件。

你的路径可能失败,因为他们使用的是相对坐标 - 小C,其中大部分脚本,我发现可以转换绝对的,或大C.

而且,你去那里。整个过程并不容易,但它是可行的!我是从经验中发言的。

+0

你是如何实施elipses?尝试在SVG中描述的方式与iOS/Cocoa方式非常不同。几乎所有的东西都有一个实现 – Robin

+0

没有人有这里提到的页面的工作URL? –