Пакет javax.imageio
Основной пакет API Java для ввода/вывода изображений.
См.: Описание
| Интерфейс | Описание |
|---|---|
| IIOParamController | Интерфейс, который должны реализовывать объекты, способные определять настройки объекта |
| ImageTranscoder | Интерфейс, предоставляющий возможности транскодирования метаданных. |
| Класс | Описание |
|---|---|
| IIOImage | Простой контейнерный класс для агрегирования изображения, набора миниатюр (превью) изображений и объекта, представляющего метаданные, связанные с изображением. |
| IIOParam | Базовый класс для всех классов, описывающих, как потоки должны быть декодированы или закодированы. |
| ImageIO | Класс, содержащий статические вспомогательные методы для поиска |
| ImageReader | Абстрактный базовый класс для разбора и декодирования изображений. |
| ImageReadParam | Класс, описывающий, как должен быть декодирован поток. |
| ImageTypeSpecifier | Класс, который позволяет удобно задать формат изображения (в частности, его |
| ImageWriteParam | Класс, описывающий, как должен быть закодирован поток. |
| ImageWriter | Абстрактный базовый класс для кодирования и записи изображений. |
| Исключение | Описание |
|---|---|
| IIOException | Класс исключений, используемый для сигнализации о сбоях во время выполнения операций чтения и записи. |
Описание пакета javax.imageio
Основной пакет API Java для ввода/вывода изображений.
Многие распространённые операции ввода/вывода изображений могут быть выполнены с помощью статических методов класса ImageIO.
Этот пакет содержит базовые классы и интерфейсы для описания содержимого файлов изображений, включая метаданные и миниатюры (IIOImage); для управления процессом чтения изображения (ImageReader, ImageReadParam, и ImageTypeSpecifier); для процесса записи изображения (ImageWriter и ImageWriteParam); для выполнения транскодирования между форматами (ImageTranscoder) и для отчётности об ошибках (IIOException).
Все реализации javax.imageio предоставляют следующие стандартные плагины для форматов изображений:
| Чтение | Запись | Примечания | Метаданные | |
|---|---|---|---|---|
| JPEG | да | да | нет | Формат метаданных JPEG |
| PNG | да | да | нет | Формат метаданных PNG |
| BMP | да | да | нет | Формат метаданных BMP |
| WBMP | да | да | нет | Формат метаданных WBMP |
| GIF | да | да | Примечания к плагину GIF | Формат метаданных GIF |
Примечания к стандартным плагинам
Стандартный плагин для формата GIF
ImageIO предоставляет плагины для чтения и записи формата 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
© 1993, 2020, 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.