2015-11-23 14 views
5

Desidero visualizzare alcune immagini su una tela in base alla dimensione dello schermo senza perdere la risoluzione dell'immagine.Mostra svg su tela

Se utilizzo un semplice png o jpeg, vedrò l'immagine pixelizzata su un grande schermo.

Quello che sto pensando è usare i file svg e visualizzarli su janvas. È possibile qualcosa del genere? (Ho provato ad usare Apache Batik senza un risultato possibile)

se questo non è possibile, puoi pensare qualche altra alternativa?

+0

Hai provato l'esempio qui: http://www.java2s.com/Code/Java/XML/SVGCanvasDemo.htm – JoSSte

risposta

4

Apache Commons ha Batik Swing component contenente un'area speciale JSVGCanvas. Questo è l'approccio migliore che riesci a trovare.

L'obiettivo del modulo di componente Batik Swing è quello di fornire un componente che può Swingutilizzato per visualizzare documenti SVG. Con la classe JSVGCanvas, è possibile visualizzare facilmente un documento SVG (da un URI o da un albero DOM) e consentire all'utente di manipolarlo, come rotazione, zoom, panoramica, selezione di testo o attivazione di collegamenti ipertestuali.


Ho cercato di usare Apache Batik senza un risultato possitive

Qualsiasi problema si può condividere con noi? Here e here troverai come implementarlo.

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

grazie per la risposta. Ancora una domanda per capire come funziona. se voglio visualizzare più immagini sulla tela, devo usare più istanze di JSVGCanvas? –

+0

sì, come descritto nel componente: * durante la visualizzazione o la manipolazione ** di un documento SVG. *** –

+0

Ho il seguente errore "org.w3c.dom.svg non esiste" quando importare i file batik nel mio progetto. La cartella "org/w3c/dom/svg" non esiste all'interno dei file zip scaricati –