2009-10-16 80 views

回答

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

这不回答这个问题,问题是用于写入图像文件。这个答案适用于读取图像文件。什么与所有的最高票? – Sixtoo 2015-12-25 15:50:33

+5

标题说,但问题是他们有一个字节数组,需要一个图像,这就是它的作用。 – 2016-01-29 18:49:03

1

根据Java文档,它看起来像你需要使用the MemoryImageSource Class把你的字节数组到内存中的对象,然后使用Component.createImage(ImageProducer的)下一个(通过在MemoryImageSource ,它实现ImageProducer)。

20

如果您知道图像的类型并且只想生成一个文件,则不需要获取BufferedImage实例。只需将字节写入具有正确扩展名的文件即可。

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