Spec-Zone .ru
спецификации, руководства, описания, API
След: 2-D Графика
Урок: Работа с Изображениями
Запись/Сохранение Изображения
Домашняя страница > 2-D Графика > Работа с Изображениями

Запись/Сохранение Изображения

Этот урок, запущенный с объяснения использования 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.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Создание и Рисование к Изображению
Следующая страница: Печать