Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот урок, запущенный с объяснения использования javax.imageio
пакет, чтобы загрузить изображения из внешнего формата изображения в Java 2D™'s внутренний BufferedImage
формат. Затем это объясняет, как использовать Graphics.drawImage()
потянуть то изображение, с дополнительной фильтрацией.
Заключительный этап сохраняет a BufferedImage
объект во внешний формат изображения. Это может быть изображением, которое было первоначально загружено Image I/O
class от внешнего формата изображения и возможно измененного использования Java 2-D API, или это может быть то, которое создавалось 2-D Java.
Image I/O
class обеспечивает простой способ сохранить образы во множестве форматов изображения в следующем примере:
static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException
BufferedImage
class реализует RenderedImage
интерфейс. .
formatName
параметр выбирает формат изображения, в котором можно сохранить BufferedImage
.
try { // retrieve image BufferedImage bi = getMyImage(); File outputfile = new File("saved.png"); ImageIO.write(bi, "png", outputfile); } catch (IOException e) { ... }
ImageIO.write
вызовы метода код, который реализует PNG, пишущий “плагин писателя PNG”. Термин плагин используется с тех пор Image I/O
расширяемо и может поддерживать широкий диапазон форматов.
Но следующие стандартные плагины формата изображения: JPEG, PNG, ДЖИФ, BMP и WBMP всегда присутствовать.
У каждого формата изображения есть свои преимущества и недостатки:
Формат | Плюс | Минус |
---|---|---|
ДЖИФ | Поддерживает анимацию, и прозрачные пиксели | Поддерживает только 256 цветов и никакую полупрозрачность |
PNG | Лучшая альтернатива чем ДЖИФ или JPG для высококачественного цвета изображения без потерь, поддерживает полупрозрачность | Не поддерживает анимацию |
JPG | Большой для фотографических изображений | Потеря сжатия, не хорошего для текста, снимков экрана, или любого приложения, где исходное изображение должно быть сохранено точно |
Для большинства приложений достаточно использовать один из этих стандартных плагинов. Они имеют преимущество того, чтобы быть легко доступным. Image I/O
class обеспечивает способ включить поддержку дополнительных форматов, которые могут использоваться, и много таких плагинов существуют. Если Вы интересуетесь тем, что форматы файлов доступны, чтобы загрузить или сохранить в Вашей системе, можно использовать getReaderFormatNames
и getWriterFormatNames
методы ImageIO
class. Эти методы возвращают массив строк, перечисляющих все форматы, поддерживаемые в этом JRE.
String writerNames[] = ImageIO.getWriterFormatNames();
Возвращенный массив имен будет включать любые дополнительные плагины, которые устанавливаются, и любое из этих имен может использоваться в качестве имени формата, чтобы выбрать писателя изображения. Следующий пример кода является простой версией полного редактирования/касания изображения программа, которая использует исправленную версию ImageDrawingApplet.java
пример программы, который может использоваться следующим образом:
Полный код этого примера представляется в SaveImage.java
.
В этом уроке Вы изучили только основы Image I/O
, который оказывает обширную поддержку для того, чтобы записать изображения, включая работу непосредственно с ImageWriter
плагин, чтобы достигнуть более прекрасного управления процессом кодирования. ImageIO может записать повторные изображения, метаданные изображения, и определить качество по сравнению с компромиссами размера. Для получения дополнительной информации см. Руководство по API ввода-вывода Изображения Java.