[英]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.