用C ++渲染矢量图形(.svg)

问题描述 投票:9回答:4

我和朋友正在开发2D游戏,其中图形将是.svg文件,我们将通过首先光栅化它们或者直接在曲面上渲染它们来适当地缩放它们(在某些时候仍然需要光栅化)。

问题是,我一直在寻找一个能够让我获取.svg文件并最终在allegro中呈现它的库。据我所知,它会将光栅化纳入某种格式,即allegro可以阅读,然后allegro可以呈现“扁平化”的图像。

那么我可以使用哪些C ++库来获取.SVG文件并“展平”它以便我可以渲染它?库显然也需要支持缩放,所以我可以缩放矢量图形然后栅格化它。

我正在使用Windows和Visual C ++ Express 2010。

任何建议都会有所帮助,因为我现在很迷茫:

我试过Cairo,但它只允许写.svg文件,不允许你读.svg文件。我也研究了与Cario一起使用的librsvg,但是我在Windows上正常工作时遇到了很多麻烦(因为它有大量的GNOME依赖)。如果您有任何指南可以使这些工作(在Windows上)也很好。

c++ windows vector-graphics allegro
4个回答
8
投票

wxsvg library允许加载和操作SVG文件。 Qt也有一个SVG module


3
投票

我的谈话时间有点迟了,但我建议你看看Nano SVG,一个非常轻量级的svg渲染器,不需要cairo / libsvg。我得到nanosvg编译并在几个小时内工作。这是非常基本的,但它完成了工作。


2
投票

SVG++ library为SVG读取提供了高级支持,因此可以在合理的时间内实现使用allegro渲染SVG。


2
投票

我最近在C ++中组装了一个SVG渲染器库:https://github.com/igagis/svgren

它使用Cairo渲染到离屏表面。支持渐变和各种形状。


0
投票

就个人而言,我在Simple Viewer GL中使用NanoSVG。它允许我在几行代码中轻松加载和栅格化SVG图像。但是这个库的SVG支持很弱。

© www.soinside.com 2019 - 2024. All rights reserved.