Как я могу записать сложный CGPath или векторное изображение на диск? - PullRequest
0 голосов
/ 26 июня 2009

Могу ли я записать байты CGPathRef на диск, а затем прочитать их позже? Есть ли простой способ сохранить путь в стиле SVG на диске?

У меня очень сложный файл SVG (~ 500 КБ), который я хотел бы преобразовать в двоичный формат для простоты хранения и загрузки на iphone. Глядя на файл svg, мы видим только линии и кривые Безье, которые точно соответствуют базовым графическим примитивам пути.

Большое спасибо,

Карл С-М

Ответы [ 2 ]

2 голосов
/ 26 июня 2009

CGPathApply вызывает обратный вызов для каждой контрольной точки CGPathRef.

Вы можете использовать это для записи контрольных точек на диск.

1 голос
/ 26 июня 2009

CGPathElement выглядит так:

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

где тип элемента - целое число, и в зависимости от типа число может быть от 2 до 6.

Так что это может быть сериализовано в следующее

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

поэтому я смотрю на первый байт, определяю тип, получаю следующие n * 4 байта в зависимости от типа и добавляю его в мой путь.

Мне действительно нужно только перейти от двоичного формата к путям, но если бы мне нужно было преобразовать обратно, CGPathApply из Rhythmic Fistman определенно был бы инструментом для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...