|
Esta biblioteca genera thumnails de imagenes. El codigo se separa en 3 clases, interfaz, motor y procesador de templates (para generar la pagina index de resultado).
La interfaz es procesada por la clase com.csa.mkthumbs.JMain que permite usa una interfaz basada en Swing.
El MkThumbs puede usarse como un programa separado o como un motor incluido en otra aplicación.
Download
Los fuentes son con Licencia ASF 2.0, y pueden bajarlos aqui /lib/mkthumbs.jar.
Tambien se puede usar desde el navegador MkThumbs.jnlp aunque quizas debas Install Web Start (si no lo tienes instalado).
Aqui solo se incluye los fuentes de la funcion que genera iconos.
Listado 1: MkThumbs(.java):generateIcon(...)
/**
* Crea un archivo pequeño a partir de un archivo de imagen
* @param srcImage imagen a generar
* @param dstFolder carpeta de destino
* @param w width de la imagen a generar
* @param h height de la imagen a generar
* @throws Exception
*/
static void generateIcon(File srcImage, File dstFolder, int w, int h)
throws Exception {
log("Generando icono de " + srcImage.getCanonicalPath());
ImageIcon imageicon = new ImageIcon(srcImage.getCanonicalPath());
double d = (double) w / (double) imageicon.getIconWidth();
double d1 = (double) h / (double) imageicon.getIconHeight();
if (d1 > d)
d1 = d;
int k = (int) ((double) imageicon.getIconWidth() * d1);
int l = (int) ((double) imageicon.getIconHeight() * d1);
Image image = imageicon.getImage();
Object obj = new Object();
Observador observador = new Observador(obj);
BufferedImage bufferedimage = new BufferedImage(k, l, 1);
Graphics g = bufferedimage.getGraphics();
boolean flag = g.drawImage(image, 0, 0, k, l, Color.white, observador);
if (!flag) {
log("drawImage diferido!");
}
g.dispose();
FileOutputStream fos=
new FileOutputStream(new File(dstFolder, srcImage.getName()));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos);
encoder.encode(bufferedimage);
fos.flush();
fos.close();
}
}
|