2009-06-26 6 views
0

Puis-je écrire les octets d'un fichier CGPathRef sur le disque puis les lire plus tard? Existe-t-il un moyen facile de stocker un chemin de style SVG sur le disque?Comment écrire une image CGPath ou vectorielle complexe sur le disque?

J'ai un fichier SVG très compliqué (~ 500K) que je voudrais convertir en format binaire pour faciliter le stockage et le chargement sur l'iphone. En regardant le fichier svg, il n'y a que des lignes et des courbes Bézier qui correspondent exactement aux primitives du chemin graphique principal.

Merci beaucoup,

Carl C-M

Répondre

2

CGPathApply appelle un rappel pour chaque point de contrôle d'un CGPathRef.

Vous pouvez utiliser ceci pour écrire les points de contrôle sur le disque.

1

CGPathElement ressembler à ceci:

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

où le type d'élément est un entier, et en fonction du type il y a 2 à 6 flotteurs.

donc cela peut être sérialisé dans la

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

suite donc je regarde le premier octet, décider du type, obtenir les n * 4 octets en fonction du type, et l'ajouter à mon chemin . Je n'ai vraiment besoin que de passer d'un format binaire aux chemins, mais si j'avais besoin de convertir, CGPathApply de Rhythmic Fistman serait certainement l'outil à utiliser.

Questions connexes