Я использую библиотеку imgscalr Java для изменения размера изображения.
Результатом вызова метода resize () является объект BufferedImage. Теперь я хочу сохранить это как файл (обычно .jpg).
Как я могу это сделать? Я хочу перейти от BufferedImage
-> File
но, может быть, это неправильный подход?
java
file-io
bufferedimage
Анкур
источник
источник
NullPointerException
,if (outputfile.exists())
Вы можете сохранить
BufferedImage
объект, используя метод записиjavax.imageio.ImageIO
класса. Сигнатура метода такая:Вот
im
этоRenderedImage
будет написано,formatName
является строка , содержащая неофициальное название формата (например , PNG) иoutput
является объектный файл должен быть записан в. Пример использования метода для формата файла PNG показан ниже:источник
Ответ кроется в Руководстве по написанию / сохранению изображения в документации Java .
Image I/O
Класс предоставляет следующий метод для сохранения изображения:В руководстве объясняется, что
так что его можно использовать в методе.
Например,
Важно окружить
write
вызов блоком try, потому что, согласно API , метод выдает сообщениеIOException
«если во время записи возникает ошибка»Также объясняются более подробно цель, параметры, возвраты и выбросы метода:
Однако
formatName
все еще может показаться довольно расплывчатым и двусмысленным; руководство немного проясняет это:Однако вы можете использовать и другие форматы:
Полный практический пример можно найти в примере Oracle
SaveImage.java
.источник
Создайте и сохраните java.awt.image.bufferedImage в файл:
Ноты:
источник
В вашем коде:
источник
В качестве одного лайнера:
источник