2009-10-16 12 views

risposta

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

Questo non risponde alla domanda, la domanda era per la scrittura in un file immagine. Questa risposta è per leggere DA un file immagine. Che cosa è con tutti i voti positivi? – Sixtoo

+5

Il titolo dice che, ma la domanda dice che hanno una matrice di byte e hanno bisogno di un'immagine, questo è ciò che fa. –

1

Secondo la documentazione di Java, sembra che è necessario utilizzare the MemoryImageSource Class per mettere l'array di byte in un oggetto in memoria, e quindi utilizzare Component.createImage (ImageProducer) accanto (che passa nella tua MemoryImageSource , che implementa ImageProducer).

20

Se si conosce il tipo di immagine e solo vuole generare un file, non c'è alcuna necessità di ottenere un'istanza BufferedImage. Basta scrivere i byte su un file con l'estensione corretta.

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);