2009-06-26 87 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肯定會成爲使用的工具。