Windows — открытие, манипулирование и рендеринг файлов SVG в win32 (C ++)

Я хотел бы открыть файлы SVG, манипулировать определенными в них фигурами и отображать эти фигуры на экране в окнах (vista / 7 / …).

Я работаю с C ++ Builder. Я думал об использовании cairo или agg для рендеринга фигур, но мне нужна библиотека анализатора SVG, которая предоставляет средство визуализации и полный доступ к формам, определенным в файлах SVG.

Кто-нибудь знает библиотеку, которую я мог бы использовать для достижения этой цели?

Я не могу использовать Qt по причине денег.

Спасибо за вашу помощь.

2

Решение

Источник AGG включает в себя просмотрщик SVG 🙂

Даже если вы пишете коммерческий продукт, лицензия Qt должна подойти.

1

Другие решения

Я думаю, что лучший способ сделать это — librsvg с libcairo. Оба очень многофункциональны и просты в использовании. Я могу открыть несколько SVG, отобразить их на экране и обработать, чтобы масштабировать и перемещать их.

1

Общее решение «отрисовать SVG в каирском контексте» — librsvg: https://live.gnome.org/LibRsvg

Тем не менее, и Qt, и librsvg лицензируются в соответствии с LGPL (что НЕ запрещает вам использовать его в коммерческих продуктах).

0

Недавно я собрал небольшую библиотеку рендерера SVG на C ++: https://github.com/igagis/svgren

Он использует Каир для рендеринга за пределы экрана. Поддерживает градиенты и все виды форм.
Он использует другую мою библиотеку под названием svgdom, которая на самом деле загружается и предлагает DOM SVG, которым можно манипулировать перед рендерингом.

0