View Single Post
Old 07-09-2007, 12:48   #3
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Credo che non abbia l'immagine ma il semplice accumulo di operazioni di disegno sul pannello.

Comunque, per salvare un BufferedImage vale quanto detto da andbin:

ImageIO.write(immagine, "jpg", new File(il percorso);

Per salvare un Image è quasi la stessa cosa. Prima tenta una conversione a RenderedImage (al 99.9% l'immagine "vera" è una RenderedImage):

Codice:
Image immagine = ...
if(immagine instanceof RenderedImage) {
    ImageIO.write((RenderedImage)immagine, "jpg", new File(il percorso));
}
altrimenti crei un buffer temporaneo:

Codice:
BufferedImage temp = new BufferedImage(
    immagine.getWidth(null),
    immagine.getHeight(null),
    BufferedImage.TYPE_INT_RGB);
copi su quel buffer l'immagine:

Codice:
Graphics2D graphics = (Graphics2D)temp.createGraphics();
graphics.drawImage(immagine, 0, 0, null);
e salvi il buffer temporaneo:

Codice:
ImageIO.write(temp, "jpg", new File(...));
Nel caso in cui tu non disponga di un'immagine ma solo del contenuto del pannello, tutto ciò che devi fare è creare un BufferedImage delle dimensioni del pannello, prendere il suo Graphics2D e passarlo al metodo "print" del pannello. Il pannello copierà sull'immagine il proprio contenuto e avrai qualcosa di salvabile.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso