2009-06-26 56 views
0

我可以将CGPathRef的字节写入磁盘,然后再读回来吗? 有没有简单的方法来存储SVG风格的路径到磁盘?如何将复杂的CGPath或矢量图像写入磁盘?

我有一个非常复杂的SVG文件(〜500K),我想转换成二进制格式,以便在iPhone上进行最简单的存储和加载。查看svg文件,只有线和贝塞尔曲线全部映射到核心图形路径基元。

太感谢你了,

卡尔Ç-M

回答

2

CGPathApply要求一个CGPathRef的每一个控制点的回调。

您可以使用它将控制点写入磁盘。

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肯定会成为使用的工具。