2009-10-16 9 views

Répondre

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

Cela ne répond pas à la question, la question était d'écrire dans un fichier image. Cette réponse est pour lire à partir d'un fichier image. Qu'est-ce que c'est avec tous les votes? – Sixtoo

+5

Le titre dit cela, mais la question dit qu'ils ont un tableau d'octets et ont besoin d'une image, c'est ce que cela fait. –

1

Selon les docs Java, il semble que vous devez utiliser the MemoryImageSource Class pour mettre votre tableau d'octets dans un objet en mémoire, puis utilisez Component.createImage (ImageProducer) suivant (en passant dans votre MemoryImageSource , qui implémente ImageProducer).

20

Si vous connaissez le type d'image et que vous voulez seulement pour générer un fichier, il n'y a pas besoin d'obtenir une instance BufferedImage. Il suffit d'écrire les octets dans un fichier avec l'extension correcte.

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