Spec-Zone.ru › OpenJDK 17

Класс ImageReaderSpi

java.lang.Object
javax.imageio.spi.IIOServiceProvider
javax.imageio.spi.ImageReaderWriterSpi
javax.imageio.spi.ImageReaderSpi
Все реализованные интерфейсы:
RegisterableService
public abstract class ImageReaderSpi extends ImageReaderWriterSpi
Интерфейс поставщика сервисов (SPI) для ImageReader. Дополнительную информацию о классах поставщиков сервисов см. в комментарии к классу IIORegistry.

Каждый ImageReaderSpi предоставляет несколько типов информации о классе ImageReader, с которым он связан.

Имя поставщика, который определил класс SPI, и краткое описание класса доступны через методы getVendorName, getDescription, и getVersion. Эти методы могут быть локализованы для предоставления вывода в соответствии с локалью. Эти методы предназначены в основном для предоставления краткой, удобочитаемой информации, которая может использоваться для организации всплывающего меню или другого списка.

Списки имен форматов, расширений файлов и MIME-типов, связанных с сервисом, можно получить с помощью методов getFormatNames, getFileSuffixes, и getMIMETypes. Эти методы могут использоваться для идентификации потенциальных ImageReader для декодирования конкретного файла или потока на основе ручного выбора формата, именования файлов или ассоциаций MIME (например, при доступе к файлу через HTTP или как к вложению в электронном письме).

Более надёжный способ определения, какие ImageReader способны обработать определённый поток данных, предоставляется методом canDecodeInput. Этот метод позволяет поставщику сервиса просмотреть содержимое фактического потока.

Наконец, экземпляр класса ImageReader , связанного с этим поставщиком сервиса, может быть получен вызовом метода createReaderInstance. Любая ресурсоёмкая инициализация, такая как загрузка нативных библиотек или создание больших таблиц, должна быть отложена, по крайней мере, до первого вызова этого метода.

См. также:
  • IIORegistry
  • ImageReader

Краткое описание полей

Модификатор и тип Поле Описание
protected Class<?>[] inputTypes
Массив объектов Class, которые должны возвращаться из getInputTypes, по умолчанию null.
static final Class<?>[] STANDARD_INPUT_TYPE
Устарело.
Вместо использования этого поля, создайте эквивалентный массив { ImageInputStream.class } напрямую.
protected String[] writerSpiNames
Массив строк, которые должны возвращаться из getImageWriterSpiNames, по умолчанию null.

Поля, объявленные в классе javax.imageio.spi.ImageReaderWriterSpi

extraImageMetadataFormatClassNames, extraImageMetadataFormatNames, extraStreamMetadataFormatClassNames, extraStreamMetadataFormatNames, MIMETypes, names, nativeImageMetadataFormatClassName, nativeImageMetadataFormatName, nativeStreamMetadataFormatClassName, nativeStreamMetadataFormatName, pluginClassName, suffixes, supportsStandardImageMetadataFormat, supportsStandardStreamMetadataFormat

Поля, объявленные в классе javax.imageio.spi.IIOServiceProvider

vendorName, version

Краткое описание конструкторов

ImageReaderSpi()
ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String readerClassName, Class<?>[] inputTypes, String[] writerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
Модификатор Конструктор Описание
protected
Создаёт пустой ImageReaderSpi.
Создаёт ImageReaderSpi с заданными значениями.

Краткое описание методов

Модификатор и тип Метод Описание
abstract boolean canDecodeInput(Object source)
Возвращает true, если предоставленный объект-источник, по-видимому, имеет формат, поддерживаемый этим ридером.
ImageReader createReaderInstance()
Возвращает экземпляр реализации ImageReader , связанной с этим поставщиком сервиса.
abstract ImageReader createReaderInstance(Object extension)
Возвращает экземпляр реализации ImageReader , связанной с этим поставщиком сервиса.
String[] getImageWriterSpiNames()
Возвращает массив String содержащий полные квалифицированные имена всех классов ImageWriterSpi, которые могут понимать внутреннее представление метаданных, используемое ImageReader , связанным с этим поставщиком сервиса, или null , если нет таких ImageWriter.
Class<?>[] getInputTypes()
Возвращает массив объектов Class указывающих типы объектов, которые могут быть использованы в качестве аргументов к методу setInput ридера.
boolean isOwnReader(ImageReader reader)
Возвращает true , если объект ImageReader является экземпляром ImageReader , связанного с этим поставщиком сервиса.

Методы, объявленные в классе javax.imageio.spi.ImageReaderWriterSpi

getExtraImageMetadataFormatNames, getExtraStreamMetadataFormatNames, getFileSuffixes, getFormatNames, getImageMetadataFormat, getMIMETypes, getNativeImageMetadataFormatName, getNativeStreamMetadataFormatName, getPluginClassName, getStreamMetadataFormat, isStandardImageMetadataFormatSupported, isStandardStreamMetadataFormatSupported

Методы, объявленные в классе javax.imageio.spi.IIOServiceProvider

getDescription, getVendorName, getVersion, onDeregistration, onRegistration

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

STANDARD_INPUT_TYPE

@Deprecated public static final Class<?>[] STANDARD_INPUT_TYPE
Устарело.
Вместо использования этого поля, создайте напрямую эквивалентный массив { ImageInputStream.class }.
Одноэлементный массив, изначально содержащий ImageInputStream.class, который должен возвращаться методом getInputTypes.

inputTypes

protected Class<?>[] inputTypes
Массив объектов Class для возврата методом getInputTypes, изначально null.

writerSpiNames

protected String[] writerSpiNames
Массив строк, возвращаемый методом getImageWriterSpiNames, изначально null.

Подробное описание конструкторов

ImageReaderSpi

protected ImageReaderSpi()
Создаёт пустой ImageReaderSpi. Подклассу необходимо инициализировать переменные экземпляра и/или переопределять реализации методов, чтобы предоставить рабочие версии всех методов.

ImageReaderSpi

public ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String readerClassName, Class<?>[] inputTypes, String[] writerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
Создаёт ImageReaderSpi с заданным набором значений.
Параметры:
vendorName - имя поставщика, как не-null String.
version - идентификатор версии, как не-null String.
names - не-null массив Stringов, указывающих имена форматов. Должен содержать хотя бы один элемент.
suffixes - массив Stringов, указывающих общие расширения файлов. Если расширения не определены, должен быть передан null. Массив длиной 0 будет нормализован в null.
MIMETypes - массив Stringов, указывающих MIME типы формата. Если MIME типы не определены, должен быть передан null. Массив длиной 0 будет нормализован в null.
readerClassName - полное имя ассоциированного класса ImageReader, как не-null String.
inputTypes - не-null массив объектов Class длиной не менее 1, указывающих допустимые типы ввода.
writerSpiNames - массив Stringов, называющих классы всех ассоциированных ImageWriterов, или null. Массив длиной 0 нормализуется до null.
supportsStandardStreamMetadataFormat - boolean, указывающий, может ли объект метаданных потока использовать деревья, описанные стандартным форматом метаданных.
nativeStreamMetadataFormatName - String, или null, для возврата методом getNativeStreamMetadataFormatName.
nativeStreamMetadataFormatClassName - String, или null, для использования при создании объекта формата метаданных для возврата методом getNativeStreamMetadataFormat.
extraStreamMetadataFormatNames - массив Stringов, или null, для возврата методом getExtraStreamMetadataFormatNames. Массив длиной 0 нормализуется до null.
extraStreamMetadataFormatClassNames - массив Stringов, или null, для использования при создании объекта формата метаданных для возврата методом getStreamMetadataFormat. Массив длиной 0 нормализуется до null.
supportsStandardImageMetadataFormat - boolean, указывающий, может ли объект метаданных изображения использовать деревья, описанные стандартным форматом метаданных.
nativeImageMetadataFormatName - String, или null, для возврата методом getNativeImageMetadataFormatName.
nativeImageMetadataFormatClassName - String, или null, для использования при создании объекта формата метаданных для возврата методом getNativeImageMetadataFormat.
extraImageMetadataFormatNames - массив Stringов для возврата методом getExtraImageMetadataFormatNames. Массив длиной 0 нормализуется до null.
extraImageMetadataFormatClassNames - массив Stringов, или null, для использования при создании объекта формата метаданных для возврата методом getImageMetadataFormat. Массив длиной 0 нормализуется до null.
Выбрасывает:
IllegalArgumentException - если vendorName равен null.
IllegalArgumentException - если version равен null.
IllegalArgumentException - если names равен null или имеет длину 0.
IllegalArgumentException - если readerClassName равен null.
IllegalArgumentException - если inputTypes равен null или имеет длину 0.

Подробное описание методов

getInputTypes

public Class<?>[] getInputTypes()
Возвращает массив объектов Class указывающих, какие типы объектов могут использоваться в качестве аргументов для метода setInput ридера.

Для большинства ридеров, принимающих ввод только из потока ImageInputStream, должен возвращаться одноэлементный массив, содержащий ImageInputStream.class.

Возвращает:
не-null массив объектов Class длиной не менее 1.

canDecodeInput

public abstract boolean canDecodeInput(Object source) throws IOException
Возвращает true если предоставленный объект источника, похоже, имеет формат, поддерживаемый этим ридером. Возвращение true из этого метода не гарантирует, что чтение будет успешным, только то, что есть разумная вероятность успеха на основе краткого анализа содержимого потока. Если источник является потоком, реализации обычно проверяют первые несколько байтов потока на наличие "магического числа", связанного с форматом. После начала фактического чтения ридер может в любой момент до завершения декодирования указать на ошибку.

Важно, чтобы состояние объекта не нарушалось, чтобы другие ImageReaderSpi могли правильно определить, могут ли они декодировать объект. В частности, если источник является потоком, должен использоваться пар mark/reset для сохранения позиции потока.

Форматы, такие как "raw", которые могут потенциально попытаться прочитать практически любой поток, должны возвращать false, чтобы избежать вызова вместо более точного соответствия.

Если source не является экземпляром одного из классов, возвращаемых методом getInputTypes, метод должен просто вернуть false.

Параметры:
source - объект (обычно поток ImageInputStream) для декодирования.
Возвращает:
true если этот поток, вероятно, может быть декодирован.
Выбрасывает:
IllegalArgumentException - если source равен null.
IOException - если возникает ошибка ввода-вывода при чтении потока.

createReaderInstance

public ImageReader createReaderInstance() throws IOException
Возвращает экземпляр реализации ImageReader, связанной с этим поставщиком услуг. Возвращаемый объект будет изначально в начальном состоянии, как если бы был вызван метод reset.

Реализация по умолчанию просто возвращает createReaderInstance(null).

Возвращает:
экземпляр ImageReader.
Выбрасывает:
IOException - если возникает ошибка при загрузке, инициализации класса ридера, или при создании или инициализации объекта ридера.

createReaderInstance

public abstract ImageReader createReaderInstance(Object extension) throws IOException
Возвращает экземпляр реализации ImageReader, связанной с этим поставщиком услуг. Возвращаемый объект будет изначально в начальном состоянии, как если бы был вызван метод reset.

Object может быть передан плагину во время создания. Природа объекта полностью зависит от конкретного плагина.

Обычно плагин реализует этот метод, используя код, подобный return new MyImageReader(this).

Параметры:
extension - объект расширения, специфичный для плагина, который может быть null.
Возвращает:
экземпляр ImageReader.
Выбрасывает:
IOException - если попытка создания ридера терпит неудачу.
IllegalArgumentException - если конструктор ImageReader выбрасывает IllegalArgumentException чтобы указать, что объект расширения непригоден.

isOwnReader

public boolean isOwnReader(ImageReader reader)
Возвращает true если объект ImageReader , переданный в качестве аргумента, является экземпляром ImageReader , связанного с этим поставщиком услуг.

Реализация по умолчанию сравнивает полное имя класса аргумента reader с именем класса, переданным в конструктор. Этот метод может быть переопределен, если требуется более сложная проверка.

Параметры:
reader - экземпляр ImageReader.
Возвращает:
true если reader распознан.
Выбрасывает:
IllegalArgumentException - если reader равен null.

getImageWriterSpiNames

public String[] getImageWriterSpiNames()
Возвращает массив String содержащий полные имена всех ImageWriterSpi классов, которые могут понимать внутреннее представление метаданных, используемое ImageReader связанным с этим поставщиком услуг, или null, если таких ImageWriter нет. Если возвращается значение отличное от null, оно должно иметь ненулевую длину.

Первый элемент массива должен содержать имя поставщика услуг для "предпочтительного" записывателя, так как он будет использован для создания экземпляра ImageWriter возвращаемого ImageIO.getImageWriter(ImageReader).

Этот механизм может быть использован для получения ImageWriters , которые будут понимать внутреннюю структуру непиксельных метаданных (см. IIOTreeInfo) генерируемых ImageReader. Получая эти данные от ImageReader и передавая их одному из ImageWriters полученных с помощью этого метода, клиентская программа может прочитать изображение, изменить его каким-либо образом и записать его обратно, сохранив все метаданные, не понимая ничего о внутренней структуре метаданных или даже о формате изображения.

Возвращает:
массив String длиной не менее 1, содержащий имена ImageWriterSpi, или null.
См. также:
  • ImageIO.getImageWriter(ImageReader)

© 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/spi/ImageReaderSpi.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API