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

Beitrag lesen

Ich hab mal nachgeguckt: BufferedImage ist von Image abgeleitet. Du müsstest es also eigentlich ohne Probleme übergeben können. Hast Du es schon mal ausprobiert? Was meldet er?

VG Simon

Hi Simon,

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:

Fehler#300: Methode encode(java.awt.Image) nicht gefunden in Schnittstelle com.sun.image.codec.jpeg.IPEGImageEncoder

Mit einem BufferedImage-Objekt funktioniert es dagegen. Downcasten geht natürlich nicht, also hatte ich ein BufferedImage mit new erzeugt und versucht, das Bild irgendwie über ein graphics-objekt mit der Methode drawimage zu übertragen.. hat aber bisher nicht geklappt:

/***************************************************/
BufferedImage img = new BufferedImage(0,0, BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D)img.getGraphics();
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).
/***************************************************/

Hintergrund ist der, das Bild in einer HTML-Seite mit dem <img> tag anzuzeigen. dazu soll es aus dem Image-objekt zuvor auf Festplatte gespeichert werden. Das muß ja eigentlich einfach gehen, nur wie?

Christian