2009-10-16 11 views

Respuesta

65
BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes)); 
+6

Esto no responde a la pregunta, la pregunta era para escribir en un archivo de imagen. Esta respuesta es para leer desde un archivo de imagen. ¿Qué pasa con todos los votos? – Sixtoo

+5

El título dice eso, pero la pregunta dice que tienen una matriz de bytes y necesitan una Imagen, eso es lo que hace. –

1

De acuerdo con la documentación de Java, parece que es necesario utilizar the MemoryImageSource Class para poner su matriz de bytes en un objeto en la memoria, y luego usar Component.createImage (ImageProducer) siguiente (que pasa en su MemoryImageSource , que implementa ImageProducer).

20

Si conoce el tipo de imagen y sólo desea generar un archivo, no hay necesidad de obtener una instancia BufferedImage. Simplemente escriba los bytes en un archivo con la extensión correcta.

OutputStream out = null; 

try { 
    out = new BufferedOutputStream(new FileOutputStream(path)); 
    out.write(bytes); 
} finally { 
    if (out != null) out.close(); 
} 
2
From Database. 
Blob blob = resultSet.getBlob("pictureBlob");    
byte [] data = blob.getBytes(1, (int) blob.length()); 
BufferedImage img = null; 
try { 
img = ImageIO.read(new ByteArrayInputStream(data)); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
drawPicture(img); // void drawPicture(Image img);