【问题标题】: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

cairolibrsvg 库都应该具有足够的跨平台功能,可以满足您的需求,并且使用 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
      相关资源
      最近更新 更多