我试图获取SVGKit(看起来像一个很棒的工具!)来渲染包含比简单矩形或圆形更复杂的文件的文件。我从尝试模仿SVGKit示例中的SVG(XML)开始,我注意到Illustrator(CS4)导出的SVG有点不同。
从Illustrator中打开<path ... />
标签,而从示例中关闭<path ... ></path>
标签。不过,事实证明这无关紧要。
Illustrator中的相对curveto
(c
)与SVGKit示例中的绝对curveto
(C
)。
我尝试将SVG从示例中的几个路径复制到Illustrator生成的SVG文件中。
但是,在Illustrator中打开并将新复制的对象移动到新的(x,y)位置后,似乎curveto
命令已从绝对(C
)更改为相对(c
)(并且因此包括负值)。
这些不再在SVGKit中呈现。 (实际上,它们会导致EXC_BAD_ACCESS错误,并且Core Graphics会引发错误)。
长话短说,有什么办法可以迫使Illustrator在其SVG中保留绝对curveto
命令?还是要防止它显着改变仅被移动的形状上的SVG命令?
最佳答案
简短的答案:在2011年12月,SVGKit对于大多数SVG都“无效”。
您描述的所有内容都已在今年年初得到修复,而现在越来越接近于符合规范。
另外...更简单/更易于使用的API(即将更接近SVG规范)即将发生重大变化。您可以在这里尝试:https://github.com/adamgit/SVGKit/tree/transforms-但该分支当前处于“开发中”状态。它非常稳定,但有时会进行实验性提交。