Obtener imagen de BD

Fuente del Articulo:  http://cafelojano.wordpress.com/2007/11/13/obtener-imagenes-desde-una-base-datos/

Imaginemos que tenemos una base de datos que contiene una tabla llamada IMAGENES, que tiene una columna tipo BLOB (denominada FOTO) y un identificador (denominado ID). Para consultar desde la base datos la foto podemos hacer la siguiente consulta:

ResultSet rs = stmt.executeQuery(“SELECT FOTO FROM IMAGENES WHERE ID = 1″);

rs.next(); //Esto hacía falta

byte[] img = rs.getBytes(“FOTO”);

Debido a que un campo tipo BLOB almacena información en formato binario utilizamos un arreglo de bytes para leerlo. Hasta aquí he leído desde la base de datos una imagen con bytes, pero ¿qué debo hacer para convertirla en imagen y agregarla a un botón?

Para responder a ésta pregunta utilizaré un código que encontré en un artículo publicado en el sitio oficial de NetBeans – End-to-End Web Service Creation and Consumption in NetBeans IDE 6.0


private Image getImage(byte[] bytes, boolean isThumbnail) throws IOException {
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
Iterator readers = ImageIO.getImageReadersByFormatName(”jpeg”);
ImageReader reader = (ImageReader) readers.next();
Object source = bis; // File or InputStream
ImageInputStream iis = ImageIO.createImageInputStream(source);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
if (isThumbnail) {
param.setSourceSubsampling(4, 4, 0, 0);
}
return reader.read(0, param);
}

El código anterior recibe como uno de sus parámetros, un arreglo de bytes y devuelve un objeto tipo Image. Entonces se podría completar el código así:

Image imagen = getImage(img, false);
Icon icon = new ImageIcon(imagen);
btnBoton.setIcon(icon);

Y con ésto tendríamos un botón con un icono que se obtuvo de una base de datos. Espero que sea de su ayuda.

About gasoft

System.out.println("...");

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: