In uno dei miei progetti utilizzo JUNG2 per visualizzare un grafo di gerarchia multicomparto molto grande, visualizzato in un'applet. Avrei bisogno di esportare l'intero/parti del grafico in immagini fisse ad alta risoluzione, dal momento che le schermate appaiono orribili quando stampate (specialmente se il grafico è stato ingrandito).Esportazione di grafici JUNG in immagini ad alta risoluzione (preferibilmente basate su vettori)
Il codice che uso attualmente è la seguente:
public void writeToDisk(File saveToFolder, String filename) {
//Dimension loDims = getGraphLayout().getSize();
Dimension vsDims = getSize();
int width = vsDims.width;
int height = vsDims.height;
Color bg = getBackground();
BufferedImage im = new BufferedImage(width,height,BufferedImage.TYPE_INT_BGR);
Graphics2D graphics = im.createGraphics();
graphics.setColor(bg);
graphics.fillRect(0,0, width, height);
paintComponent(graphics);
try{
ImageIO.write(im,"png",new File(saveToFolder,filename));
}catch(Exception e){
e.printStackTrace();
}
}
Questo crea immagini PNG non particolarmente alta risoluzione. Quindi le mie domande sono le seguenti:
- È possibile aumentare la risoluzione di esportazione PNG a 300 dpi?
- È possibile esportare il grafico, o qualsiasi componente di swing per quella materia, in formati vettoriali come EPS, PDF o SVG senza troppi problemi? Ho trovato diverse librerie (VectorGraphics2D, FreeHEP) per la gestione di immagini vettoriali basate su Java, tuttavia non sono sicuro che usarle significherebbe che devo "ri-disegnare" ogni vertice e spigolo nel grafico. Ovviamente non è molto desiderabile ...
- Ci sono altre alternative che potrei aver perso?
Grazie in anticipo,
Forse, è possibile convertire il vostro raster risultante/file immagine bitmap in un file immagine vettoriale successivamente utilizzando una libreria di terze parti come Autotrace [http://autotrace.sourceforge.net/](http://autotrace.sourceforge.net/) – ecle
Sei riuscito a risolvere questo problema? Perché nessuna delle seguenti risposte funziona effettivamente @posdef – SacJn
@SacJn la risposta che ho postato qui sotto ** ha funzionato ** al momento, non posso dire se le librerie sono cambiate in un modo che rompe quella soluzione però. Non sto più lavorando a quel progetto #orphanproject #programminginacademia :) – posdef