Пакет 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, предоставлены записывателю или метаданные изображения не предоставлены, и локальная цветовая таблица, которая была бы сгенерирована из самого изображения, не равна глобальной цветовой таблице.
Блок расширения управления графикой записывается в выходной поток только в том случае, если метаданные изображения, содержащие элемент GraphicControlExtension, предоставлены записывателю или метаданные изображения не предоставлены, и локальная цветовая таблица, сгенерированная из изображения, требует прозрачный индекс. Блоки расширения приложения, простого текста и комментариев записываются только в том случае, если они предоставлены записывателю через метаданные изображения.
Запись интерлизированных изображений можно контролировать с помощью режима прогрессивности предоставленного экземпляра ImageWriteParam. Если режим прогрессивности MODE_DISABLED, то записывается неинтерлизированное изображение. Если режим прогрессивности MODE_DEFAULT, то записывается интерлизированное изображение. Если режим прогрессивности MODE_COPY_FROM_METADATA, то используется значение из метаданных (если оно предоставлено, в противном случае записывается интерлизированное изображение).
Плагин-записыватель изображений GIF поддерживает установку метаданных выходного потока из метаданных, предоставленных записывателю в формате метаданных потока GIF native javax_imageio_gif_stream_1.0 или в стандартном формате метаданных javax_imageio_1.0, и установку метаданных выходного изображения из метаданных, предоставленных записывателю в формате метаданных изображения GIF native javax_imageio_gif_image_1.0 или в стандартном формате метаданных javax_imageio_1.0. Сопоставление стандартного формата метаданных с форматами метаданных потока и метаданных изображения GIF native приведено в таблицах здесь.
- Since:
- 1.4
| Класс | Описание |
|---|---|
| IIOException | Класс исключений, используемый для сигнализации сбоя операций чтения и записи во время выполнения. |
| IIOImage | Простой класс-контейнер для агрегирования изображения, набора миниатюр (превью) изображений и объекта, представляющего метаданные, связанные с изображением. |
| IIOParam | Базовый класс для всех классов, описывающих, как следует декодировать или кодировать потоки. |
| IIOParamController | Интерфейс для реализации объектами, которые могут определить настройки объекта IIOParam, либо путём создания графического интерфейса для получения значений от пользователя, либо другими способами. |
| ImageIO | Класс, содержащий статические удобные методы для поиска ImageReader и ImageWriter и выполнения простого кодирования и декодирования. |
| ImageReader | Абстрактный базовый класс для парсинга и декодирования изображений. |
| ImageReadParam | Класс, описывающий, как следует декодировать поток. |
| ImageTranscoder | Интерфейс, предоставляющий возможности транскодирования метаданных. |
| ImageTypeSpecifier | Класс, позволяющий удобным способом указать формат изображения (в частности, его SampleModel и ColorModel). |
| ImageWriteParam | Класс, описывающий, как следует кодировать поток. |
| ImageWriter | Абстрактный базовый класс для кодирования и записи изображений. |
© 1993, 2023, 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/21/docs/api/java.desktop/javax/imageio/package-summary.html