Как лучше всего сохранить изображение в файл с помощью Java? - PullRequest
1 голос
/ 08 декабря 2010

У меня есть школьная работа, в которой мне нужно сохранить произвольное изображение на диске вместе с другими данными в одном файле.

Мы думали о сериализации вместе с данными; однако изображения, даже BufferedImage с, не могут быть сериализованы.

Какой самый простой способ лучший сохранить изображение с другими данными в одном файле с использованием Java? Честно говоря, меня не волнует размер файла. Хотя, если он сжат, я полагаю, это плюс.

Ответы [ 2 ]

5 голосов
/ 08 декабря 2010
ImageIO.write(img, "BMP", new File("filename.bmp"));

где img - ваш BufferedImage.

После этого вы можете открыть файл с помощью FileOutputStream и записать некоторые данные после или после.При чтении нужно просто вырезать приложенные данные, а остальное считать своим изображением.

3 голосов
/ 08 декабря 2010

Если вы хотите «читаемое» решение, например, хранящееся в текстовом файле, вы можете закодировать изображение в виде строки base64 и сохранить его в своем файле. В этом вопросе несколько вариантов для Java, например, один из apache commons .

Если вы получите byte[], как показано в других ответах, вы можете получить строку, выполнив

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

И вернуть байтовый массив с помощью

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