Пакет 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 приведено в таблицах здесь.
- Since:
- 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/package-summary.html