Bilder richtig speichern und laden

  • Themenstarter Themenstarter Heidi
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
H

Heidi

Gast
Hallo Leute.
Ich sitze derzeit echt an einem Problem, wo ich nicht weiter komme. Ich stelle über die JUNG einen Graphen auf einem JFrame dar, und speichere dieses Bild durch gewöhnlichen I/O Code ab. Nur wenn ich das Bild wieder lade, ist es schwarz. Ich frage mich warum, weil eigentlich alles richtig ausgeführt wird.
Würd mich freuen wenn mir da jemand weiter helfen könnte.
Hier der Code:

Code:
public class SaveGraph { 
	

	public static void writeJPGImage(VisualizationViewer vv, String filename) {
//		Create Image
	    int width = vv.getWidth();
	    int height = vv.getHeight();
	    Color bg = vv.getBackground();
	    BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
	    
	    //Draw Image
	    Graphics2D graphics = bi.createGraphics();
	    graphics.setColor(bg);
	    graphics.drawImage(bi,0,0, width, height, vv);
	    vv.paintComponents(graphics);

	    try{
	       ImageIO.write(bi,"jpg",new File("c:\\graph.jpg"));
	    }
	    catch(IOException e){
	    	e.printStackTrace();
	    	}
	    }
	}

Danke im voraus
 
probier mal statt paintComponent die paint-Methode oder sogar beide zu verwenden...das sieht sehr so aus als würde nichts oder nicht das richtige gezeichnet.
 
Nein, das war anscheinend schon richtig, ich habe den Fehler entdeckt. Ich muss den Container übergeben, nicht die Komponente selbst. Trotzdem danke 🙂
 
Habe dasselbe Problem.
Nochmal für einen Neuling, wo muss welcher Container übergeben werden?

Danke
 
gast: Ich denke immr noch das meine Methode auch geht...

Ansonsten will Heidi statt vv.paintComponents() das paintComponents() des Containers, wo vv drin ist, übergeben. Dabei ruft dieser Container dann die paint() und die paintComponent()-methode von vv auf, letztendlich ist also beides das selbe...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben