在win32中打开,操作和渲染SVG文件(C ++)

时间:2012-11-29 13:24:16

标签: c++ windows svg cairo

我想打开SVG文件,操纵其中定义的形状,并将这些形状渲染到windows中的屏幕上(vista / 7 /...).

我使用C ++ builder。我一直在考虑使用cairo或agg来渲染形状,但我需要一个SVG解析器库,它提供渲染器和对SVG文件中定义的形状的完全访问权。

有没有人知道我可以使用的库来实现这个目标?

我不能用Qt来赚钱。

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

AGG源包括一个SVG查看器: - )

即使您正在编写商业产品,Qt许可证也应该没问题。

答案 1 :(得分:1)

这是最好的方法,我认为,librsvg与libcairo。两者都非常丰富且易于使用。我可以打开几个SVG,将它们渲染到屏幕上并处理它们以进行缩放和移动。

答案 2 :(得分:0)

通用“将SVG渲染到cairo上下文”解决方案是librsvg:https://live.gnome.org/LibRsvg

但是,Qt和librsvg都是根据LGPL许可的(不禁止您在商业产品中使用它)。

答案 3 :(得分:0)

我最近在C ++中整理了一个小型SVG渲染器库:https://github.com/igagis/svgren

它使用Cairo渲染到离屏表面。支持渐变和各种形状。 它使用了另一个名为svgdom的库,它实际上加载并提供了一个可以在渲染之前进行操作的SVG DOM。