Spec-Zone.ru › OpenJDK 8

Класс 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 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

Конструкторы

Модификатор Конструктор и описание
protected ImageReaderSpi()

Создаёт пустой 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)

Создаёт 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 — значение, указывающее, может ли объект метаданных потока использовать деревья, описанные стандартным форматом метаданных.
nativeStreamMetadataFormatName — String, или null, который будет возвращаться из getNativeStreamMetadataFormatName.
nativeStreamMetadataFormatClassName — String, или null, используемый для создания объекта формата метаданных, который будет возвращаться из getNativeStreamMetadataFormat.
extraStreamMetadataFormatNames — массив String или null, возвращаемый из getExtraStreamMetadataFormatNames Массив длиной 0 нормализуется до null.
extraStreamMetadataFormatClassNames — массив String или null, используемый для создания объекта формата метаданных, возвращаемого из getStreamMetadataFormat. Массив длиной 0 нормализуется до null.
supportsStandardImageMetadataFormat — значение, указывающее, может ли объект метаданных изображения использовать деревья, описанные стандартным форматом метаданных.
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 из этого метода не гарантирует успешности чтения, только то, что есть разумная вероятность успеха на основе краткого анализа содержимого потока. Если источник является ImageInputStream, реализации обычно проверяют первые несколько байтов потока на наличие "магического числа", связанного с форматом. После начала фактического чтения читатель может в любое время до завершения декодирования указать на ошибку.

Важно, чтобы состояние объекта не изменялось, чтобы другие ImageReaderSpi могли правильно определить, могут ли они декодировать объект. В частности, если источник является ImageInputStream, следует использовать пару 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, 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.

Spec-Zone.ru

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