在 canvas 上显示 svg

Display svg on canvas

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

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

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

如果这不可能,你能想到其他替代方案吗?

Apache Commons 有 Batik Swing component containing special canvas JSVGCanvas。这是您能找到的最佳方法。

The goal of the Batik Swing component module is to provide a Swing component that can used to display SVG documents. With the JSVGCanvas class, you can easily display an SVG document (from a URI or a DOM tree) and allow the user to manipulate it, such as rotating, zooming, panning, selecting text or activating hyperlinks.


I tried to use Apache Batik without a possitive result

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

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");
}