【问题标题】:Display svg on canvas在画布上显示 svg
【发布时间】:2016-02-25 12:20:15
【问题描述】:

我想根据屏幕尺寸在画布上显示一些图像,而不会丢失图像分辨率。

如果我使用简单的 png 或 jpeg,我会在大屏幕上看到像素化的图像。

我在想的是使用 svg 文件并将它们显示在 janvas 上。这样的事情可能吗? (我尝试使用 Apache Batik 没有得到肯定的结果)

如果这是不可能的,你能想到其他的选择吗?

【问题讨论】:

标签: java canvas svg batik


【解决方案1】:

Apache Commons 有 Batik Swing component 包含特殊画布 JSVGCanvas。这是您能找到的最佳方法。

Batik Swing 组件模块的目标是提供一个Swing 组件,该组件可以用于显示SVG 文档。使用JSVGCanvas 类,您可以轻松地显示 SVG 文档(来自 URI 或 DOM 树)并允许用户对其进行操作,例如旋转、缩放、平移、选择文本或激活超链接。


我尝试使用 Apache Batik 却没有得到肯定的结果

有什么问题可以和我们分享吗? Herehere 你会发现如何实现它。

public SVGCanvasDemo(JFrame frame) {
    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add("Center", svgCanvas);
    frame.setVisible(true);
    svgCanvas.setURI("file:/c:/files/hungryminds/rectangles.svg");
}

【讨论】:

  • 感谢您的回复。另一个问题只是为了了解这是如何工作的。如果我想在画布上显示多个图像,我必须使用多个 JSVGCanvas 实例?
  • 是的,如组件中所述:在显示或操作SVG 文档时。
  • 在我的项目中导入蜡染文件时出现以下错误“org.w3c.dom.svg 不存在”。下载的 zip 文件中不存在“org/w3c/dom/svg”文件夹
猜你喜欢
  • 2017-05-28
  • 2019-05-07
  • 2016-07-07
  • 2018-10-17
  • 2017-06-05
  • 2013-03-22
  • 1970-01-01
  • 2015-01-22
  • 1970-01-01
相关资源
最近更新 更多