JPanel-Inhalt zu Image oder BufferedImage?

p1ttypl4tsch

Grünschnabel
Hi :)

ich bin neu hier und hab gleich mal eine Frage.
Ich will so etwas wie ein Paint-Abklatsch machen, jedoch mit einer anderen Funktion!
Das "gemalte Bild" aus dem JPanel möchte (muss) ich als Gif-Format abspeichern...

Ich hab mich im I-net schon mal ein bisschen schlau gemacht und herausgefunden, dass ich nur Images in Gif exportieren kann! Also jetzt zu meiner eigentlich Frage: Wie kann ich das JPanel in ein Image (oder BufferedImage) umwandeln, um es anschließend lokal zu speichern (als Gif)?:confused:

Dankeschön schonma im voraus ;)
 
Mach doch einfach einen Screenshot von dem Panel und speichere diesen Screenshot. Dort findest du Code dazu: http://schmidt.devlib.org/java/save-screenshot.html

Musst du nur dem ImageIO.write sagen dass es ein gif sein soll.

robot.createScreenCapture(screenRect); rufst du dann mit panel.getBounds bzw. panel.getVisibleRect auf. Dann solltest du nur den Bereich des Panels bekommen.
 
Hallo,

es geht auch mit Component.paintAll, das zeichnet dann den Inhalt des Panels in ein Graphics-Objekt
Code:
BufferedImage image = new BufferedImage(panel.getWidth(),panel.getHeight(),BufferedImage.TYPE_INT_RGB);
panel.paintAll(image.getGraphics());
und dann wie schon gesagt über ImageIO speichern.
 
Dankeschön für die Antworten :) Waren sehr hilfreich ...

Jedoch hab ich noch ein Frage bezüglich gif-Dateien. Ab welcher Version ist es möglich Gif-Dateien zu erzeugen ... ich muss JDK5 benutzen

Mit Png-Output funktioniert das Programm schon, mit Gif jedoch nicht

Danke im Voraus
 
Zurück