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