La Web del Programador: Comunidad de Programadores
 
    Pregunta:  30809 - GUARDAR IMAGEN A DISCO COMO JPEG
Autor:  Abel
Me gustaría saber como guardar la imagen almacenada en un BufferedImge en disco en formato jpeg o gif
Muchas gracias

  Respuesta:  Abel
He encontrado esto en un foro de noticias, no lo he probado pero me imagino que funcionará:

Este codigo guarda un JPEG. Esto es de la parte OSCURA de la api de Java.
Solo te paso el trozo codigo con ciertos tags <<>> que debes substiruir por lo falte.
Seguro que hay otra forma de hacerlo mas eficiente, pero esta seguro que ya te sirve. Que la fuerza te acompañe.

Xmas

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import com.sun.image.codec.jpeg.*; // OSCURO, MUY OSCURO

....

ImageIcon img=new ImageIcon(<<IMAGE>>);

while(img.getImageLoadStatus()==MediaTracker.LOADING) {};

if(img.getImageLoadStatus()!=MediaTracker.COMPLETE)
throw new Exception("No es posible leer la imagen");

int width=img.getIconWidth();
int height=img.getIconHeight();

BufferedImage bimg = new
BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

Graphics2D g = (Graphics2D)bimg.getGraphics();

// Mandamos a dibujamos la imagen
g.drawImage(img.getImage(),0,0,<<ImageObserver>>);

java.io.FileOutputStream fos=new java.io.FileOutputStream(<<FILENAME.JPG>>);

JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(bimg);

fos.flush();
fos.close();