2010-12-08 99 views
1

我有一個學校的工作,我需要在一個文件中將任意圖像和其他數據一起保存到磁盤。我們想到了將它與數據一起序列化的問題;然而,圖像,即使BufferedImage s,不能被序列化。使用Java,將圖像保存到文件的最佳方式是什麼?

什麼是 最好 最簡單的方法是使用Java將圖像與其他數據一起保存到單個文件中?說實話,我並不在乎文件的大小。雖然,如果它被壓縮了,我想這是一個加號。

回答

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

其中img是你的BufferedImage

之後,您可以用FileOutputStream打開文件,並在後面或後面寫入一些數據。 閱讀時,您只需剪切附加的數據,並將其餘部分視爲圖像。

+0

得到字節數組回來,我怎麼可以追加任意數據這個文件,並仍然相對容易地閱讀它? – zneak 2010-12-08 15:34:53

3

如果你想要一個「可讀」的解決方案,就像在一個文本文件中存儲一樣,你可以將圖像編碼爲一個base64字符串並將其存儲在你的文件中。 Java有few options in this question,例如apache commons

如果你得到byte[]在其他的答案說明你可以通過做

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

得到一個字符串,並將

byte[] imageBytes = new Base64().decodeBase64(imageString); 
相關問題