Gespeichertes Bild ist plötzlich schwarz!

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi,

in meinem Programm soll man durch einen FileChooser ein Bild auswählen können, welches dann auf eine bestimmte Größe gesetzt wird und abgespeichert werden soll.
Das klappt auch, bis auf, dass das abgespeicherte Bild plötzlich komplett schwarz ist.

Code:
public static void bildEinfuegen() {
		fc.setDialogTitle("Bild auswählen...");
		fc.showOpenDialog(null);
		File file = fc.getSelectedFile();
		String filename = file.toString();
		
		// Bild
	    ImageIcon ii = new ImageIcon(filename);
	    int width = 120, height = 160;	// Bildgröße wird festgelegt.
	    
	    // Größe wird geändert. 
	    ii.setImage(ii.getImage().getScaledInstance(width,height,Image.SCALE_FAST)); 
	    
	    // Filename wird festgelegt.
	    filename = foto.jpeg;
	   
	    // Muss aus dem ImageIcon ein BufferedImage machen. Dafür muss
	    // es zunächst in ein Image gecastet werden.
	    Image i = ii.getImage();
	    BufferedImage buf = new BufferedImage( width, height, BufferedImage.TYPE_INT_RGB );
	    
	    // Aus dem BufferedImage in Datei schreiben.
	    try {
	    	ImageIO.write( buf, "jpeg", new File (filename));
	    } catch(IOException ex) {System.out.println("BufferedIage konnte nicht in Datei geschrieben werden!");}	
	    
	    // Bild wird auf Label gesetzt und ausgegeben.
		JLabel lIcon = new JLabel(ii);
		lIcon.setBounds(430,80,120,160);
		lIcon.setVisible(true);
		Frame.contentPane.add(lIcon);
		Frame.contentPane.repaint();
	}
Weiss jemand woran das liegt???

Gruss, Stephan.
 
Danke erst mal für die schnelle Antwort.

Du hast ja auf den letzten Beitrag deines Links verwisen,
ABER: Das hatte ich ja schon ausprobiert, nur dann setzt er die Größe des Bildes nicht. Soll heissen, das Bild bleibt genau so groß wie vorher.
Damit ist mir also leider nicht geholfen. Oder ich habe noch was anderes falsch...

Gruss, Stephan.
 
seh ich erst jetzt!

Wann weißt du dem BufferedImage eigentlich was zu?? das ist komplett leer 😀

vorm ImageIO und nach dem erzeugen vom bufimage das rein
Code:
    buf.getGraphics().drawImage(i,0,0,width,height,this);
 
HI,

jetzt sagt er mir folgendes: "Cannot use this in a static context"

Meine Methode muss aber static sein...

Ne Idee???
Gruss, Stephan.
 
HALT! KOMMANDO ZURRÜCK!!!

Geht doch, durfte nur nicht das this nehmen, sondern meine Klasse direkt ansprechen.
Also, dann danke nochmal,

Gruss, Stephan.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben