Экспорт путей GIMP в вопрос .svg

Я использовал направляющие в файле GIMP, чтобы создать путь, который представляет собой просто прямые линии — никаких кривых или чего-то еще. Однако, когда я экспортирую путь, код SVG использует индикатор кривой «C» для рисования пути. Итак, часть кода выглядит так:

<path id="Unnamed"
    fill="none" stroke="black" stroke-width="1"
    d="M 400.00,1230.00
       C 400.00,1230.00 328.00,1230.00 328.00,1230.00
         328.00,1230.00 328.00,962.00 328.00,962.00
       ...
       Z"
</path>

Я хочу вырезать координаты, которые были экспортированы в этот файл, и использовать их для множества других вещей, и, очевидно, это тривиальный вопрос для обработки формата «C», но мне интересно, почему он использовал C, а не L и если я смогу ускорить загрузку на действительно сложных путях, если файл .svg использует L.


person Community    schedule 09.08.2009    source источник


Ответы (3)


Я предполагаю, что GIMP просто обрабатывает каждый сегмент пути как кривую Безье и, следовательно, также экспортирует их в SVG. Или им просто было лень реализовывать специализированную кодировку определенных путей. В любом случае, насколько я понимаю, эти кривые функционально эквивалентны вашим отрезкам прямых. так что это все еще точно такая же информация.

Что касается времени загрузки, я думаю, что это не имеет большого значения. И синтаксис XML, и синтаксис пути должны быть проанализированы, я думаю, что это несколько токенов больше или меньше в последнем, не должно иметь большого значения. Впрочем, как обычно: Если сомневаетесь, в профиль :-)

person Joey    schedule 09.08.2009

Если у вас есть только прямые линии, то я полагаю, что в некоторых случаях это может иметь значение, потому что команде lineto нужно указать только одну точку, а curvto нужно три. Это может увеличить размер файла и, таким образом, повлиять на время загрузки/анализа. Хотя, вероятно, не очень сильно, если у вас нет огромного количества строк.

person Erik Dahlström    schedule 10.08.2009

Это как-то связано с тем, что пути представлены в GIMP в виде кривых Безье (как уже правильно догадались). Код gimpvectors-export.c на git.gnome правильно экспортирует эти кривые в соответствии с рекомендацией SVG.

Поэтому всякий раз, когда вы в конечном итоге создаете более одной контрольной точки в GIMP с помощью своего пути (что вы в основном делаете все время), вы получите экспортированный результат.

person romanofski    schedule 24.01.2013