2009-10-16 5 views

Antwort

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

Das ist nicht die Frage nicht beantworten, war die Frage, auf eine Bilddatei zum Schreiben. Diese Antwort dient zum Lesen von einer Bilddatei. Was ist mit den ganzen Stimmen? – Sixtoo

+5

Der Titel sagt das, aber die Frage sagt, sie haben ein Byte-Array und brauchen ein Image, das ist was das tut. –

1

Nach der Java-Dokumentation, es sieht aus wie Sie the MemoryImageSource Class verwenden müssen Ihren Byte-Array in ein Objekt im Speicher zu setzen, und dann Component.createImage (Imageproducer) nächste (vorbei in Ihrem MemoryImageSource verwenden , die ImageProducer implementiert).

20

Wenn Sie die Art des Bildes kennen und wollen nur eine Datei zu erzeugen, gibt es keine Notwendigkeit, eine BufferedImage Instanz zu erhalten. Schreiben Sie einfach die Bytes in eine Datei mit der korrekten Erweiterung.

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