Я хотел бы открыть файлы SVG, манипулировать определенными в них фигурами и отображать эти фигуры на экране в окнах (vista / 7 / …).
Я работаю с C ++ Builder. Я думал об использовании cairo или agg для рендеринга фигур, но мне нужна библиотека анализатора SVG, которая предоставляет средство визуализации и полный доступ к формам, определенным в файлах SVG.
Кто-нибудь знает библиотеку, которую я мог бы использовать для достижения этой цели?
Я не могу использовать Qt по причине денег.
Спасибо за вашу помощь.
Источник AGG включает в себя просмотрщик SVG 🙂
Даже если вы пишете коммерческий продукт, лицензия Qt должна подойти.
Я думаю, что лучший способ сделать это — librsvg с libcairo. Оба очень многофункциональны и просты в использовании. Я могу открыть несколько SVG, отобразить их на экране и обработать, чтобы масштабировать и перемещать их.
Общее решение «отрисовать SVG в каирском контексте» — librsvg: https://live.gnome.org/LibRsvg
Тем не менее, и Qt, и librsvg лицензируются в соответствии с LGPL (что НЕ запрещает вам использовать его в коммерческих продуктах).
Недавно я собрал небольшую библиотеку рендерера SVG на C ++: https://github.com/igagis/svgren
Он использует Каир для рендеринга за пределы экрана. Поддерживает градиенты и все виды форм.
Он использует другую мою библиотеку под названием svgdom, которая на самом деле загружается и предлагает DOM SVG, которым можно манипулировать перед рендерингом.