View Full Version : [java] Salvataggio immagine jpg
ceccoggi
07-09-2007, 04:25
Salve a tutti, ho sviluppato un paint in java x l'università, ora mancherebbe solo il salvataggio dell'immagine creata in jpg, qualcuno mi spiega come si fa?
Praticamente tutti i disegni fatti dell'utente sono su un JPanel..
grazie a quanti risponderanno!
Praticamente tutti i disegni fatti dell'utente sono su un JPanel..Sì ok ma come sono memorizzati? Su un BufferedImage? Perché in tal caso basta usare la classe javax.imageio.ImageIO e uno dei suoi metodi write() (vedi javadoc)
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):
Image immagine = ...
if(immagine instanceof RenderedImage) {
ImageIO.write((RenderedImage)immagine, "jpg", new File(il percorso));
}
altrimenti crei un buffer temporaneo:
BufferedImage temp = new BufferedImage(
immagine.getWidth(null),
immagine.getHeight(null),
BufferedImage.TYPE_INT_RGB);
copi su quel buffer l'immagine:
Graphics2D graphics = (Graphics2D)temp.createGraphics();
graphics.drawImage(immagine, 0, 0, null);
e salvi il buffer temporaneo:
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.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.