我可以将CGPathRef的字节写入磁盘,然后稍后再读回来吗? 有一种简单的方法可以将SVG样式路径存储到磁盘吗?
我有一个非常复杂的SVG文件(~500K),我想将其转换为二进制格式,以便在iphone上进行最简单的存储和加载。查看svg文件,只有行和贝塞尔曲线,所有这些曲线都完全映射到核心图形路径基元。
非常感谢你,
Carl C-M
答案 0 :(得分:2)
CGPathApply
为CGPathRef
的每个控制点调用回调。
您可以使用它将控制点写入磁盘。
答案 1 :(得分:1)
CGPathElement看起来像这样:
struct CGPathElement {
CGPathElementType type;
CGPoint * points;
};
其中元素类型是int,并且根据类型,有2到6个浮点数。
所以这可以序列化为以下
int;float;float;int;float;float;float;float;float;float;
所以我查看第一个字节,确定类型,根据类型获取下一个n * 4字节,并将其添加到我的路径中。
我真的只需要从二进制格式转到路径,但如果我需要转换回来,来自Rhythmic Fistman的CGPathApply绝对会成为使用的工具。