Я хочу преобразовать объект InputStream, представляющий файл изображения в объект BufferedImage, и после выполнения некоторых операций над BufferedImage преобразовать его обратно в InputStream, чтобы его можно было записать на диск. Я не хочу сначала создайте объект на диске, чтобы предотвратить дополнительные накладные расходы ввода-вывода.Преобразование между InputStream и BufferedImage
Я думаю, что я могу сделать следующее, чтобы преобразовать BufferedImage в InputStream
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(image,fileExtension, outputStream);
InputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
Является ли это правильно?. Кроме того, у меня есть следующие два вопроса
- Как получить объект BufferedImage из объекта InputStream
- Могу ли я получить размер файла непосредственно из объекта InputStream?
Некоторые примеры действительно поможет
Спасибо
«преобразовать его обратно в InputStream, так что его можно записать на диск» почему вы хотите, чтобы преобразовать его в InputStream, если вы хотите записать его на диск? – Puce