繁体   English   中英

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

[英]Using Java, what is the best way to save an image to a file?

我有一份学校作业,需要将任意图像以及其他数据保存到一个文件中。

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

使用Java将图像与其他数据保存在单个文件中的 最佳 最简单方法是什么? 老实说,我并不在乎文件大小。 但是,如果压缩的话,我认为这是一个加号。

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

其中img是您的BufferedImage

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

如果需要“可读”解决方案(例如存储在文本文件中),则可以将图像编码为base64字符串,然后将其存储在文件中。 对于Java, 此问题中有几个选项 ,例如apache commons中的一个。

如果按照其他答案所示获得byte[] ,则可以通过执行以下操作获取String

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

然后返回字节数组

byte[] imageBytes = new Base64().decodeBase64(imageString);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM