任意の画像を他のデータと一緒に1つのファイルでディスクに保存する必要がある学校の仕事があります。
データと一緒にシリアル化することを考えました。ただし、画像であってもBufferedImage
シリアル化することはできません。
Javaを使用して、他のデータと一緒に画像を1つのファイルに保存する最も簡単な方法は何ですか?正直なところ、ファイルサイズはあまり気にしません。とはいえ、圧縮されていればプラスだと思います。
任意の画像を他のデータと一緒に1つのファイルでディスクに保存する必要がある学校の仕事があります。
データと一緒にシリアル化することを考えました。ただし、画像であってもBufferedImage
シリアル化することはできません。
Javaを使用して、他のデータと一緒に画像を1つのファイルに保存する最も簡単な方法は何ですか?正直なところ、ファイルサイズはあまり気にしません。とはいえ、圧縮されていればプラスだと思います。
ImageIO.write(img, "BMP", new File("filename.bmp"));
img はあなたのBufferedImage
.
その後、でファイルを開き、FileOutputStream
後または後ろにデータを書き込むことができます。読み取るときは、追加されたデータを切り取って、残りを画像として扱うだけです。
テキストファイルに格納されているように、「読み取り可能な」ソリューションが必要な場合は、画像をbase64文字列としてエンコードし、それをファイルに格納できます。Javaのこの質問にはいくつかのオプションがあります。たとえば、apache commonsのものです。
byte[]
他の回答に示されているように取得した場合、次のようにして文字列を取得できます
String imageString = new Base64().encodeBase64String(imageBytes);
そして、バイト配列を元に戻します
byte[] imageBytes = new Base64().decodeBase64(imageString);