2010-12-08 3 views
1

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

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

Что такое best Простейший способ сохранить изображение с другими данными в одном файле, используя 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); 
Смежные вопросы