ios – 使用CGPath绘制到SVG输出

ios – 使用CGPath绘制到SVG输出,第1张

概述我用CGPath和CAShapeLayer做了一个绘画(绘图画面),现在我的客户想要输出图像可扩展,我找到了SVG Kit SVG Kit,但我不知道如何使用这个库.我没有在库示例中找到和示例!有谁知道如何使用这个库将CGPath转换为SVG或者可以给我一个教程? 提前致谢 ! 您可以从查看 at this file on GitHub开始.它具有将CGPathRef转换为SVG路径的d属性的例程 我用CGPath和CAShapeLayer做了一个绘画(绘图画面),现在我的客户想要输出图像可扩展,我找到了SVG Kit SVG Kit,但我不知道如何使用这个库.我没有在库示例中找到和示例!有谁知道如何使用这个库将CGPath转换为SVG或者可以给我一个教程?

提前致谢 !

解决方法 您可以从查看 at this file on GitHub开始.它具有将CGPathref转换为SVG路径的d属性的例程.我写的.

类方法的签名是(Nsstring *)svgPathFromCGPath:(CGPathref)aPath;
[更新:在下面添加了代码段]

#import "SVGPathGenerator.h"

CGMutablePathref pathToBuild = CGPathCreateMutable();CGPathMovetoPoint(pathToBuild,nil,10,10);CGPathAddQuadCurvetoPoint(pathToBuild,20,30,40);CGPathAddCurvetoPoint(pathToBuild,40,100,90);CGPathAddlinetoPoint(pathToBuild,50,100);Nsstring* aDAttribute =  [SVGPathGenerator svgPathFromCGPath:pathToBuild];NSLog(@"%@",aDAttribute);

输出:
M10.0 10.0Q20.0 0.0 30.0 40.0C20.0 40.0 40.0 30.0 100.0 90.0L50.0 100.0

注意,如果添加弧,输出将没有紧密的对应关系,因为SVG中的弧和Quartz中的弧的描述完全不同.

如果你想将它输出到一个简单的SVG文件,那么你可以做类似的事情:

CGRect boundingBox = CGPathGetPathBoundingBox(pathToBuild);Nsstring* svgAsstring = [Nsstring stringWithFormat:@" <?xml version=\"1.0\" enCoding=\"UTF-8\"?> \                         <!DOCTYPE svg PUBliC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"> \                         <svg  xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" vIEwport-fill=\"none\" vIEwBox=\"%lf,%lf,%lf\" version=\"1.1\" height=\"%lf\" wIDth=\"%lf\" > \                         <path fill=\"none\" stroke=\"green\" d=\"%@\" /> \                         </svg>",boundingBox.origin.x,boundingBox.origin.y,boundingBox.size.wIDth,boundingBox.size.height,aDAttribute                         ];NSData* utf8Data = [svgAsstring dataUsingEnCoding:NSUTF8StringEnCoding];[utf8Data writetofile:pathTofile atomically:YES];

(我没有编译这段代码).

总结

以上是内存溢出为你收集整理的ios – 使用CGPath绘制到SVG输出全部内容,希望文章能够帮你解决ios – 使用CGPath绘制到SVG输出所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1008489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存