1

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

我们考虑将它与数据一起序列化;但是,图像,甚至BufferedImages,都无法序列化。

使用 Java 将图像与其他数据保存在单个文件中的最简单方法是什么?老实说,我并不真正关心文件大小。不过,如果它被压缩,我想这是一个加号。

4

2 回答 2

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

img 是你的BufferedImage.

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

于 2010-12-08T15:32:58.250 回答
3

如果您想要一个“可读”的解决方案,例如存储在文本文件中,您可以将图像编码为 base64 字符串并将其存储在您的文件中。对于 Java,这个问题有几个选项,例如来自apache commons的选项。

如果您得到byte[]其他答案中所示的内容,则可以通过执行获得 String

String imageString = new Base64().encodeBase64String(imageBytes);

并返回字节数组

byte[] imageBytes = new Base64().decodeBase64(imageString);
于 2010-12-08T15:54:21.383 回答