2013-07-12 37 views
2

我有一个JPEG图像的ByteArrayOutputStream表示(虽然我可以使用GIF或PNG,如果这会更好)。我想在窗体上显示它,例如在标签或图像对象中。我受限于我无法将图像写入文件的事实,我只能将其存储在内存中。如何仅通过ByteArrayOutputStream在JFrame中显示图像?

+0

使其通过'ImageIO' – MadProgrammer

+1

*”虽然我可以用GIF .. “*他们是动画还是静态?不要将'ImageIO'用于动画GIF。 –

+0

@AndrewThompson,他们是静态的。感谢您的高举。 – russell

回答

8

其中一个(简单)possibilites的要解决的问题是创建一个ByteArrayInputStream,然后把它传递给ImageIO的:

ByteArrayOutputStream output = new ByteArrayOutputStream(); 
// save the image to the output stream 
ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray()); 
BufferedImage image = ImageIO.read(input);