我有一個學校的工作,我需要在一個文件中將任意圖像和其他數據一起保存到磁盤。我們想到了將它與數據一起序列化的問題;然而,圖像,即使BufferedImage
s,不能被序列化。使用Java,將圖像保存到文件的最佳方式是什麼?
什麼是
最好
最簡單的方法是使用Java將圖像與其他數據一起保存到單個文件中?說實話,我並不在乎文件的大小。雖然,如果它被壓縮了,我想這是一個加號。
我有一個學校的工作,我需要在一個文件中將任意圖像和其他數據一起保存到磁盤。我們想到了將它與數據一起序列化的問題;然而,圖像,即使BufferedImage
s,不能被序列化。使用Java,將圖像保存到文件的最佳方式是什麼?
什麼是
最好
最簡單的方法是使用Java將圖像與其他數據一起保存到單個文件中?說實話,我並不在乎文件的大小。雖然,如果它被壓縮了,我想這是一個加號。
ImageIO.write(img, "BMP", new File("filename.bmp"));
其中img是你的BufferedImage
。
之後,您可以用FileOutputStream
打開文件,並在後面或後面寫入一些數據。 閱讀時,您只需剪切附加的數據,並將其餘部分視爲圖像。
如果你想要一個「可讀」的解決方案,就像在一個文本文件中存儲一樣,你可以將圖像編碼爲一個base64字符串並將其存儲在你的文件中。 Java有few options in this question,例如apache commons。
如果你得到byte[]
在其他的答案說明你可以通過做
String imageString = new Base64().encodeBase64String(imageBytes);
得到一個字符串,並將
byte[] imageBytes = new Base64().decodeBase64(imageString);
得到字節數組回來,我怎麼可以追加任意數據這個文件,並仍然相對容易地閱讀它? – zneak 2010-12-08 15:34:53