2015-11-23 13 views
5

Ich möchte einige Bilder auf einer Leinwand entsprechend Bildschirmgröße anzuzeigen, ohne die Bildauflösung zu verlieren.Display Svg auf Leinwand

Wenn ich ein einfaches PNG oder JPEG verwende, sehe ich das Bild auf einem großen Bildschirm pixelisiert.

Was ich denke, ist es, Svg-Dateien zu verwenden und sie auf den Janvas anzuzeigen. Ist so etwas möglich? (Ich habe versucht, Apache Batik ohne ein positives Ergebnis zu verwenden)

Wenn das nicht möglich ist, können Sie eine andere Alternative denken?

+0

haben Sie das Beispiel hier versucht: http://www.java2s.com/Code/Java/XML/SVGCanvasDemo.htm – JoSSte

Antwort

4

Apache Commons hat Batik Swing component enthält spezielle Leinwand JSVGCanvas. Dies ist der beste Ansatz, den Sie finden können.

Das Ziel des Batik Swing Komponentenmoduls ist eine Swing Komponente zu schaffen, die verwendet wird, kann SVG Dokumente angezeigt werden soll. Mit der Klasse JSVGCanvas können Sie einfach ein SVG-Dokument anzeigen (aus einem URI oder einer DOM-Struktur) und es dem Benutzer erlauben, es zu bearbeiten, z. B. Drehen, Zoomen, Schwenken, Auswählen von Text oder Aktivieren von Hyperlinks.


Ich habe versucht, Apache Batik ohne Possitive Ergebnis

Jedes Problem, das Sie mit uns teilen können zu benutzen? Here und here finden Sie, wie Sie es implementieren.

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

Dank für Ihre Antwort danken. Noch eine Frage, um zu verstehen, wie das funktioniert. Wenn ich mehrere Bilder auf der Leinwand anzeigen möchte, muss ich mehrere JSVGCanvas-Instanzen verwenden? –

+0

ja, wie in der Komponente beschrieben: * beim Anzeigen oder Bearbeiten ** eines SVG-Dokuments. *** –

+0

Ich habe den folgenden Fehler "org.w3c.dom.svg existiert nicht", wenn ich Batik-Dateien in meinem Projekt importieren. Der Ordner "org/w3c/dom/svg" existiert nicht in den heruntergeladenen ZIP-Dateien –