【问题标题】:Drawing SVG images in wxWidgets在 wxWidgets 中绘制 SVG 图像
【发布时间】:2010-12-27 16:04:13
【问题描述】:

我需要能够绘制SVG 图像(能够缩放和旋转图像 90,180 度和 270 度)。

我还希望能够将图像绘制成新的 SVG 图像(将“文档”导出到 SVG),而不是将图像渲染为位图(例如用于显示)。

wxWidgets 似乎没有任何内置的 SVG 功能,所以我不确定如何继续添加此类功能。

【问题讨论】:

  • 小记。了解 SVG 的局限性。我曾经编写了一个程序来创建一个巨大的反弹图,其中数十个代理基于解析模拟日志文件相互交谈,结果发现当您创建大型 SVG 文件时 SVG 在 Firefox 和 IE 中非常慢。我改为在 QT 画布上绘制我的东西,它运行没有问题。 (我意识到 QT/wxWidgets 没有嵌入到浏览器中,所以这可能不适用于您的情况。)
  • 好吧,我正在编写一个桌面应用程序,虽然你知道我可以在 wxWidgets 中使用的另一种矢量图形格式,并且我对图像编辑软件有很好的支持,我愿意接受建议。
  • +1 用于包含解释 SVG 的链接。

标签: c++ image svg wxwidgets


【解决方案1】:

cairo library website 在使用 librsvg 绘制 SVG 时具有 examples。

cairo 和 librsvg 库都应该具有足够的跨平台功能,可以满足您的需求,并且使用 wxcairo 应该可以将它们停靠在 wxWidgets.

这是我在面临将 SVG 绘制到 wxWidgets 的任务时研究的第一个想法。

此外,当您使用 cairo 进行所有绘图时,使用 cairo 绘制到 SVG 文件非常容易,而绘图模型 cairo 用途与 SVG 非常相似。

【讨论】:

    【解决方案2】:

    您可以使用 wxSVGFileDC (http://docs.wxwidgets.org/trunk/classwx_s_v_g_file_d_c.html) 渲​​染成 SVG 格式的文件,但不支持绘制 SVG 图像,您需要使用 SVG 渲染库并将其与 wx 集成(如何做到这一点是平台-依赖)。

    请注意 wxSVGFileDC 在 contrib 中,即在 wx 2.8 中需要独立构建的附加库,但在 2.9 中位于主库本身中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-23
      • 1970-01-01
      • 2013-07-09
      • 2017-03-10
      • 1970-01-01
      相关资源
      最近更新 更多