使用Java,将图像保存到文件的最佳方法是什么?

时间:2010-12-08 15:29:14

标签: java serialization bufferedimage

我有一个学校的工作,我需要在一个文件中将任意图像与其他数据一起保存到磁盘。

我们考虑过将其与数据一起序列化;但是,图像,即使是BufferedImage,也无法序列化。

使用Java将最佳最简单的方法用于将其他数据保存在单个文件中是什么?老实说,我真的不关心文件大小。但是,如果它被压缩,我认为这是一个加号。

2 个答案:

答案 0 :(得分:5)

ImageIO.write(img, "BMP", new File("filename.bmp"));

其中img是您的BufferedImage

之后,您可以使用FileOutputStream打开文件并在后面或后面写一些数据。 阅读时,您只需剪切附加数据并将其余数据视为您的图像。

答案 1 :(得分:3)

如果您想要一个“可读”的解决方案,就像存储在文本文件中一样,您可以将该图像编码为base64字符串并将其存储在您的文件中。 Java有一个few options in this question,例如来自apache commons的那个。

如果你得到其他答案中所示的byte[],你可以通过

获得一个字符串
String imageString = new Base64().encodeBase64String(imageBytes);

返回字节数组
byte[] imageBytes = new Base64().decodeBase64(imageString);
相关问题