Convertir Byte [] a Imagen en Java
Una imagen en byte [] puede estar guardado en una base de datos y queremos recuperar esa imagen en Java y mostrarlo.
Yo desarrolle una forma de hacerlo, primero necesitamos de BufferedImage para guardar la imagen, el InputStream para leer el byte [] de la imagen y almacenarlo en el BufferedImage.
BufferedImage image = null;
InputStream in = new ByteArrayInputStream(imgFoto);
image = ImageIO.read(in);
Donde imgFoto es tu arreglo de Byte [] de la imagen, por ejemplo supongamos que en una base de datos tengo un campo con fotos y esta en la columna 3 y es del tipo Blob.
Blob blob = resultset.getBlob(3);
//primero me aseguro que no este vacío.
if(blob != null){
try{
byte[] data = blob.getBytes(1, (int)blob.length());
BufferedImage img = null;
try{
img = ImageIO.read(new ByteArrayInputStream(data));
}
catch(Exception ex){
System.out.println(ex.getMessage());
}
ImageIcon icono = new ImageIcon(img);
JOptionPane.showMessageDialog(null, "Imagenes", "Imagen", JOptionPane.INFORMATION_MESSAGE, icono);
}catch(Exception ex){
//No hay imagen
}
}
else{
//No hay imagen
}
Veamos otro ejemplo esta vez obtengo la imagen de un archivo, luego lo convierto a byte [], y por finalizar convierto el byte [] en imagen.
public static void main(String[] args) {
try{
File archivo = new File("C:\\Users\\David\\Pictures\\za.jpg");
byte[] imgFoto = new byte[(int)archivo.length()];
InputStream inte = new FileInputStream(archivo);
inte.read(imgFoto);
BufferedImage image = null;
InputStream in = new ByteArrayInputStream(imgFoto);
image = ImageIO.read(in);
ImageIcon icono = new ImageIcon(image);
JOptionPane.showMessageDialog(null, "Imagenes", "Imagen", JOptionPane.INFORMATION_MESSAGE, icono);
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
muy bueno gracias me ayudo mucho
ResponderEliminar