Simon Reinhardt: JPG unter Java speichern / Image in ein BufferedImage umwandeln?

Beitrag lesen

Hi!

Ja, hatte ich auch gesehen, dass BufferedImage von Image abgeleitet ist, und versucht das Image so zu übergeben. Ging aber nicht, die Methode encode der Klasse JPEGImageEncoder benötigt ein BufferedImage. Die Fehlermeldung lautet:

Achsooooo, sorry, hatte mich verlesen. Hab gedacht, Du hättest ein BufferedImage und bräuchtest ein Image.
Sag mir mal, wo ich die API-Doku zu diesem Encoder finde? Ist natürlich die Frage, warum er ein BufferedImage fordert. Woher kriegst Du denn das Image-Objekt? Gibt es da nicht eine Möglichkeit, direkt ein BufferedImage zu bekommen?

/***************************************************/
BufferedImage img = new BufferedImage(0,0, BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D)img.getGraphics();

Nimm doch img.createGraphics(), dann brauchst Du nicht mehr zu casten. Außerdem: Du benutzt nachher sowieso die drawImage()-Methode von Graphics.

g.fillRect(0,0,200,200); //dies geht, das Rechteck wird mit abgespeichert
g.drawImage( meineImageInstanz , 0,0, this); //geht irgendwie nicht, (this ist ein ImageObserver-objekt, die Klasse implementiert dieses Interface).

Was genau geht hier nicht? Passiert einfach nur nichts?
In der Doku steht, drawImage() würde false zurückgeben, wenn das Bild noch nicht fertig geladen ist. Fang das mal ab. Ich denke, da liegt das Problem.

VG Simon