Java - Generar imagen dinámica con java

 
Vista:

Generar imagen dinámica con java

Publicado por Alberto (17 intervenciones) el 22/01/2007 23:34:39
Hola:

Mi problema es que tengo en el disco unas fotos que se muestran en un repositorio de albums de la aplicación. La idea que tengo es que en el JSP se vean las fotos en miniatura y al pulsar sobre ella se vea la foto a tamaño natural.

Yo he intentado recuperar la foto original y desde ésta guardar unas imágenes en miniatura que serán las que muestre en el JSP, pero la imagen que crea es solamente un cuadrado negro.

Adjunto el código y espero que alguien me pueda ayudar puesto que es algo importante y no logro dar con la tecla.

public static List getListadoImagenesEnMiniatura(List listaImagenes){
log.debug(Ctes.COMIENZA_METODO);
List salida= new ArrayList();

String appPath=Config.APP_PATH;
log.debug("path real: "+appPath);
for(int i=0;i<listaImagenes.size();i++){
Imagen imagen=(Imagen)listaImagenes.get(i);
String rutaCompleta=appPath+imagen.getRuta()+imagen.getNombre();

log.debug("ruta completa: "+rutaCompleta);
//Carga la imagen desde el fichero
Image img = new ImageIcon(rutaCompleta+
"."+imagen.getExtension()).getImage();
log.debug("imagen obtenida "+img.toString());
Image imgReducida=getImagenReducida(img);
log.debug("imagen reducida "+imgReducida.toString());

BufferedImage imgFinal = new BufferedImage(500,500,
BufferedImage.TYPE_INT_RGB );

guardaImagen(imgFinal, rutaCompleta+"mini"+
"."+imagen.getExtension());
}


log.debug(Ctes.TERMINA_METODO);
return salida;
}

private static Image getImagenReducida(Image imagen){
log.debug(Ctes.COMIENZA_METODO);
Image imgReducida=imagen.getScaledInstance(500,500,Image.SCALE_DEFAULT);
log.debug(Ctes.TERMINA_METODO);
return imgReducida;
}

public static void guardaImagen(BufferedImage imgFinal,String imgReducida){
log.debug(Ctes.COMIENZA_METODO);
// Codifica la imagen como jpeg y la graba en un fichero
OutputStream salida = null;
try {
salida = new FileOutputStream(imgReducida);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(salida);
encoder.encode(imgFinal);
salida.close();
} catch (IOException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
log.debug(Ctes.TERMINA_METODO);
}

Muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder