BufferedImage laden

TomsToms

Grünschnabel
Hallo zusammen,

ich suche eine Methode, mit der man ein BufferedImage laden kann.
Momentan habe ich folgenden Code:

Code:
public LoadSketch() {
		FileDialog fd = new FileDialog(frame, "Laden", FileDialog.LOAD);
		fd.setVisible(true);
		String file = fd.getFile();
	    if ( file == null )  {
	      return; 
	    }
	    try { 
	    		FileInputStream fis = new 
			FileInputStream ( fd.getFile() ); 
			 byte [] data = new byte [ fis.available() ]; 
			    fis.read( data );
			background = Toolkit.getDefaultToolkit().createImage(data);
			fis.close();
			
	    }
	    catch(IOException e){
	    	e.printStackTrace();
	    }
	}
Hier bringt er mir, dass background ein Image sein muss. background ist jedoch ein BufferedImage. Gibt es nun eine Möglichkeit die Datei trotzdem als BufferedImage zu laden? Oder wäre es einfacher aus einem Image ein BufferedImage zu machen, so dass ich lediglich später Image = BufferedImage mache

Gruß
Tom
 
Habs nun gelöst bekommen:

Code:
public LoadSketch() {
		FileInputStream fis;
		BufferedInputStream bis;
		String fileName,dirName;
		
		FileDialog fd = new FileDialog(frame, "Laden", FileDialog.LOAD);
		fd.setVisible(true);
		String file = fd.getFile();
		fileName = fd.getFile();
	    dirName = fd.getDirectory();
	    if ( file == null )  {
	      return; 
	    }
	    try { 
	    	String fullPath = dirName + System.getProperty("file.separator") + fileName;
	    	fis = new FileInputStream(fullPath);
	        bis = new BufferedInputStream(fis);
	    	//System.out.println("hierher gehts noch");
	        JPEGImageDecoder jpegImageDecoder = JPEGCodec.createJPEGDecoder(bis);
	        background = jpegImageDecoder.decodeAsBufferedImage();
			fis.close();
			
	    }
	    catch(IOException e){
	    	e.printStackTrace();
	    }
	}
 
Hallo. Ich weiß ja nicht ob ich es richtig einsehe, aber du willst einfach nur ein BufferedImage aus einer File bekommen.

Dann so.
 
Zurück