0 votes

Comment puis-je écrire un CGPath complexe ou une image vectorielle sur le disque ?

Puis-je écrire les octets d'un CGPathRef sur le disque et les relire plus tard ? Existe-t-il un moyen simple de stocker un chemin de type SVG sur le disque ?

J'ai un fichier SVG très compliqué (~500K) que j'aimerais 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 de bézier, qui correspondent toutes exactement aux primitives de chemin des graphiques de base.

Merci beaucoup,

Carl C-M

2voto

Rhythmic Fistman Points 7612

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

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

1voto

CGPathElement ressemble à ceci :

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

où le type d'élément est un int et, selon le type, il y a de 2 à 6 floats.

Cela peut donc être sérialisé de la manière suivante

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

Je regarde donc le premier octet, je détermine le type, j'obtiens les n*4 octets suivants en fonction du type, et je les ajoute à mon chemin.

Je n'ai vraiment besoin que de passer d'un format binaire à des chemins, mais si j'avais besoin de faire une conversion inverse, CGPathApply de Rhythmic Fistman serait certainement l'outil à utiliser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X