Пакет javax.imageio

Основной пакет API Java Image I/O.

Многие распространенные операции ввода/вывода изображений могут выполняться с помощью статических методов класса 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
Интерфейс Описание
IIOParamController

Интерфейс, который должен быть реализован объектами, которые могут определить настройки объекта IIOParam, либо создав графический интерфейс для получения значений от пользователя, или другими средствами.

ImageTranscoder

Интерфейс, предоставляющий возможность транскодирования метаданных.

Класс Описание
IIOImage

Простой класс-контейнер для агрегирования изображения, набора миниатюр (превью) изображений и объекта, представляющего метаданные, связанные с изображением.

IIOParam

Базовый класс для всех классов, описывающих, как должны быть декодированы или закодированы потоки.

ImageIO

Класс, содержащий статические удобные методы для поиска ImageReader и ImageWriter и выполнения простого кодирования и декодирования.

ImageReader

Абстрактный базовый класс для парсинга и декодирования изображений.

ImageReadParam

Класс, описывающий, как должен быть декодирован поток.

ImageTypeSpecifier

Класс, позволяющий удобно указать формат изображения (в частности, его SampleModel и ColorModel).

ImageWriteParam

Класс, описывающий, как должен быть закодирован поток.

ImageWriter

Абстрактный базовый класс для кодирования и записи изображений.

Исключение Описание
IIOException

Класс исключений, используемый для сигнализации об ошибках во время выполнения операций чтения и записи.

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/package-summary.html

Spec-Zone .ru
спецификации, руководства, описания, API