2009-06-26 3 views
0

CGPathRefのバイトをディスクに書き込んだり、あとで読み戻したりすることはできますか? SVG形式のパスをディスクに保存する簡単な方法はありますか?複雑なCGPathまたはベクトルイメージをディスクに書き込むにはどうすればよいですか?

私は非常に複雑なSVGファイル(〜500K)を持っています。これは、iphoneでの保存とロードが最も簡単なバイナリ形式に変換したいものです。 svgファイルを見ると、線とベジエ曲線のみがあり、そのすべてがコアグラフィックパスプリミティブに正確にマップされます。

CGPathRefのすべてのコントロールポイントのコールバックを呼び出しCGPathApply

カールC-M

答えて

2

、ありがとうございました。

これを使用して、コントロールポイントをディスクに書き出すことができます。

1

CGPathElementは次のようになり:要素タイプがintであり、種類に応じて2〜6のフロートがある

struct CGPathElement { 
    CGPathElementType type; 
    CGPoint * points; 
}; 

だからこれは私が最初のバイトを見て、種類を決定し、種類に応じて、次のn * 4つのバイトを取得し、私のパスに追加し、次の

int;float;float;int;float;float;float;float;float;float; 

ににシリアライズすることができます。

私は本当にバイナリ形式からパスに移行する必要がありますが、私が戻って変換する必要がある場合は、Rhythmic FistmanのCGPathApplyを使うのは間違いありません。

関連する問題