Пакет javax.imageio
Многие распространённые операции ввода-вывода изображений можно выполнять с помощью статических методов класса ImageIO.
Этот пакет содержит базовые классы и интерфейсы для описания содержимого файлов изображений, включая метаданные и миниатюры (IIOImage); для управления процессом чтения изображений (ImageReader, ImageReadParam и ImageTypeSpecifier) и процессом записи изображений (ImageWriter и ImageWriteParam); для преобразования между форматами (ImageTranscoder) и для сообщения об ошибках (IIOException).
Все реализации javax.imageio предоставляют следующие стандартные модули поддержки форматов изображений:
| Формат изображения | Чтение | Запись | Примечания | Метаданные |
|---|---|---|---|---|
| BMP | да | да | нет | Формат метаданных BMP |
| GIF | да | да | Примечания к модулю GIF | Формат метаданных GIF |
| JPEG | да | да | нет | Формат метаданных JPEG |
| PNG | да | да | нет | Формат метаданных PNG |
| TIFF | да | да | Примечания к модулю TIFF | Формат метаданных TIFF |
| WBMP | да | да | нет | Формат метаданных WBMP |
Примечания к стандартным модулям
Стандартный модуль для формата изображений GIF
ImageIO предоставляет модулиImageReader и ImageWriter для формата изображений Graphics Interchange Format (GIF). Это «стандартные» модули GIF, то есть модули, включённые в JRE, в отличие от модулей, входящих в состав стандартных расширений или предоставляемых сторонними разработчиками. Следующие примечания и спецификация метаданных относятся к стандартным модулям. Запись изображений GIF
Модуль записи изображений GIF гарантирует запись без потерь для изображений, соответствующих следующим требованиям:- число каналов равно 1;
- число бит на отсчёт не превышает 8;
- размер компонента цвета не превышает 8;
По умолчанию модуль записи GIF создаёт изображения версии «89a». Это можно изменить на «87a», явно задав версию в метаданных потока (см. спецификацию формата метаданных потока GIF).
Модуль записи GIF поддерживает создание анимированных изображений GIF с помощью стандартных методов записи последовательностей, определённых в классе ImageWriter.
Глобальная таблица цветов записывается в выходной поток, если выполняется одно из следующих условий:
- предоставлены метаданные потока, содержащие элемент GlobalColorTable;
- записывается последовательность и для первого изображения в последовательности предоставлены метаданные изображения, содержащие элемент LocalColorTable;
- метаданные изображения не предоставлены или не содержат элемент LocalColorTable.
В первом случае используется глобальная таблица цветов из метаданных потока, во втором — локальная таблица цветов из метаданных изображения, а в третьем глобальная таблица цветов создаётся на основе ColorModel или SampleModel первого изображения.
Локальная таблица цветов записывается в выходной поток, только если модулю записи предоставлены метаданные изображения, содержащие элемент LocalColorTable, либо если метаданные изображения не предоставлены, а локальная таблица цветов, которая была бы создана на основе самого изображения, отличается от глобальной таблицы цветов.
Блок Graphic Control Extension записывается в выходной поток, только если модулю записи предоставлены метаданные изображения, содержащие элемент GraphicControlExtension, либо если метаданные изображения не предоставлены, а для локальной таблицы цветов, созданной на основе изображения, требуется прозрачный индекс. Блоки Application, Plain Text и Comment Extension записываются только в том случае, если они предоставлены модулю записи в метаданных изображения.
Запись чересстрочных изображений можно контролировать с помощью режима прогрессивной обработки предоставленного экземпляра ImageWriteParam. Если режим прогрессивной обработки равен MODE_DISABLED, будет записано изображение без чересстрочной развертки. Если режим прогрессивной обработки равен MODE_DEFAULT, будет записано изображение с чересстрочной разверткой. Если режим прогрессивной обработки равен MODE_COPY_FROM_METADATA, используются настройки метаданных (если они предоставлены; в противном случае будет записано изображение с чересстрочной разверткой).
Модуль записи изображений GIF поддерживает настройку метаданных выходного потока на основе метаданных, предоставленных модулю записи, в собственном формате метаданных потока GIF javax_imageio_gif_stream_1.0 или стандартном формате метаданных javax_imageio_1.0, а также настройку метаданных выходного изображения на основе метаданных, предоставленных модулю записи, в собственном формате метаданных изображения GIF javax_imageio_gif_image_1.0 или стандартном формате метаданных javax_imageio_1.0. Соответствие стандартного формата метаданных собственным форматам метаданных потока и изображения GIF показано в таблицах здесь.
- Начиная с версии:
- 1.4
| Класс | Описание |
|---|---|
| IIOException | Класс исключения, используемый для сообщения о сбоях во время выполнения операций чтения и записи. |
| IIOImage | Простой класс-контейнер для объединения изображения, набора миниатюр (изображений предварительного просмотра) и объекта, представляющего метаданные, связанные с изображением. |
| IIOParam | Суперкласс всех классов, описывающих способ декодирования или кодирования потоков. |
| IIOParamController | Интерфейс, который должны реализовывать объекты, способные определять настройки объекта IIOParam — например, отображая графический интерфейс для получения значений от пользователя или используя другие средства. |
| ImageIO | Класс, содержащий статические вспомогательные методы для поиска ImageReader и ImageWriter, а также для простого кодирования и декодирования. |
| ImageReader | Абстрактный суперкласс для разбора и декодирования изображений. |
| ImageReadParam | Класс, описывающий способ декодирования потока. |
| ImageTranscoder | Интерфейс, предоставляющий возможность преобразования метаданных. |
| ImageTypeSpecifier | Класс, позволяющий удобным способом задать формат изображения (в частности, его SampleModel и ColorModel). |
| ImageWriteParam | Класс, описывающий способ кодирования потока. |
| ImageWriter | Абстрактный суперкласс для кодирования и записи изображений. |
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/imageio/package-summary.html