【问题标题】:SVG rendering in Java using SWT - Batik too slow使用 SWT 在 Java 中渲染 SVG - Batik 太慢了
【发布时间】:2011-04-10 23:43:11
【问题描述】:

当我尝试使用 SWT 渲染 SVG 文件时,我遇到了 Batik 的性能问题。它看起来像是一个非常臃肿的库,但我能找到的唯一一个是 SVGSalamander,它看起来只是 Swing。有没有一种方法可以渲染 SVG 而无需先将它们转换为更快的位图形式?它需要是跨平台的。

【问题讨论】:

  • 我开始尝试为我的 Java 应用程序寻找 SVG 渲染解决方案,最终使用了 Batik 的 PNGTranscoder。它需要更多的前期工作,但对我来说,只要我知道我需要什么尺寸,就将所有 SVG 渲染为 PNG 效果更好。我知道这不是您想要的,但我认为节省的重新渲染时间(尤其是对于复杂的 SVG)非常重要。如果您想实时操作 SVG 元素,这当然无济于事。如果您愿意,我可以发布代码 sn-p。我花了很长时间才弄清楚这一切:)

标签: java vector svg swt batik


【解决方案1】:

如果您只需要渲染,我强烈建议您使用 Mozilla (XULRunner) 或 WebKit (WebKitGTK+),因为两者都可以嵌入到 SWT 库中。

  • Mozilla XULRunner 可用于 Windows、Linux 和 Mac。通过将 SWT.Mozilla 样式标志传递给构造函数,可以在 SWT Browser 类中使用它。
  • Safary(即 WebKit)在 Mac OS X 上默认被 SWT 使用。在 Linux 上,它是默认浏览器 as of SWT 3.7(仅处于早期阶段)。如果您有 SWT 3.6.0+,您可以通过将系统属性 org.eclipse.swt.browser.UseWebKitGTK 传递为 true 来强制 SWT 使用 WebKit。在 Windows 上,有一个 GenuiTec 的 WebKitGTK+ 端口,可以是found here

总之,XULRunner 的 SVG 引擎更容易工作,因为它的支持范围更广。您可以为任何平台创建应用程序的一体化包(捆绑 XULRunner)。我个人不推荐在 Windows 上使用 Genuitec 的 SWT WebKit,因为它还不够成熟。

【讨论】:

    猜你喜欢
    • 2023-03-03
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多