Spec-Zone.ru › OpenJDK 17

Класс ImageWriterSpi

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

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

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

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

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

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

См. также:
  • IIORegistry
  • ImageTypeSpecifier
  • ImageWriter

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

Модификатор и тип Поле Описание
protected Class<?>[] outputTypes
Массив объектов Class, возвращаемых методом getOutputTypes, изначально null.
protected String[] readerSpiNames
Массив строк, возвращаемых методом getImageReaderSpiNames, изначально null.
static final Class<?>[] STANDARD_OUTPUT_TYPE
Устарело.
Вместо использования этого поля, создайте эквивалентный массив { ImageOutputStream.class } напрямую.

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

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

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

vendorName, version

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

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

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

Модификатор и тип Метод Описание
boolean canEncodeImage(RenderedImage im)
Возвращает true, если реализация ImageWriter, связанная с этим поставщиком услуг, может закодировать указанный экземпляр RenderedImage.
abstract boolean canEncodeImage(ImageTypeSpecifier type)
Возвращает true, если реализация ImageWriter, связанная с этим поставщиком услуг, может закодировать изображение с данным макетом.
ImageWriter createWriterInstance()
Возвращает экземпляр реализации ImageWriter, связанной с этим поставщиком услуг.
abstract ImageWriter createWriterInstance(Object extension)
Возвращает экземпляр реализации ImageWriter, связанной с этим поставщиком услуг.
String[] getImageReaderSpiNames()
Возвращает массив String содержащий все полные имена всех классов ImageReaderSpi, которые могут понять внутреннее представление метаданных, используемое ImageWriter, связанным с этим поставщиком услуг, или null, если такие ImageReaders не указаны.
Class<?>[] getOutputTypes()
Возвращает массив объектов Class указывающих какие типы объектов могут быть использованы в качестве аргументов для метода setOutput записывателя.
boolean isFormatLossless()
Возвращает true если формат, выводимый этим записывателем, сохраняет данные пикселей с точностью до бита.
boolean isOwnWriter(ImageWriter writer)
Возвращает true если объект ImageWriter является экземпляром ImageWriter, связанного с этим поставщиком услуг.

Методы, объявленные в классе 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_OUTPUT_TYPE

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

outputTypes

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

readerSpiNames

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

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

ImageWriterSpi

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

ImageWriterSpi

public ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String writerClassName, Class<?>[] outputTypes, String[] readerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
Создаёт ImageWriterSpi с заданным набором значений.
Параметры:
vendorName - имя поставщика, как не-null String.
version - идентификатор версии, как не-null String.
names - не-null массив String с указанием имён форматов. Должно быть представлено по крайней мере одно значение.
suffixes - массив String с указанием общих расширений файлов. Если расширения не определены, должен быть передан null. Массив длиной 0 будет нормализован до null.
MIMETypes - массив String с указанием MIME-типов формата. Если расширения не определены, должен быть передан null. Массив длиной 0 будет нормализован до null.
writerClassName - полное имя связанного класса ImageWriterSpi, как не-null String.
outputTypes - массив объектов Class длиной не менее 1, указывающий допустимые типы вывода.
readerSpiNames - массив String с длиной не менее 1, содержащий названия классов всех связанных ImageReader или 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 - если writerClassName null.
IllegalArgumentException - если outputTypes null или имеет длину 0.

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

isFormatLossless

public boolean isFormatLossless()
Возвращает true , если формат, выводимый этим записывателем, сохраняет данные пикселей с точностью до бита. Стандартная реализация возвращает true.
Возвращает:
true , если формат сохраняет полную точность пикселей.

getOutputTypes

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

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

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

canEncodeImage

public abstract boolean canEncodeImage(ImageTypeSpecifier type)
Возвращает true , если реализация ImageWriter , связанная с этим поставщиком сервиса, может закодировать изображение с заданной структурой. Структура (т.е., SampleModel и ColorModel изображения) описывается объектом ImageTypeSpecifier.

Значение true не является абсолютной гарантией успешного кодирования; процесс кодирования всё ещё может генерировать ошибки из-за таких факторов, как ошибки ввода-вывода, несогласованность или неправильно сформированные структуры данных и т.д. Цель заключается в том, чтобы произвести разумный анализ базовой структуры изображения, чтобы определить, находится ли она в области кодирования формата. Например, поставщик сервиса для формата, который может кодировать только градации серого, вернёт false , если ему передано RGB BufferedImage. Аналогично, поставщик сервиса для формата, который может кодировать 8-битное RGB изображение, может отказаться от кодирования изображения с связанным альфа-каналом.

Разные ImageWriter и, соответственно, поставщики услуг, могут выбирать более или менее строгие условия. Например, они могут принять изображение с преумноженным альфа-каналом, даже если ему придётся выделить его из каждого пикселя с некоторой потерей точности, для того, чтобы сохранить его.

Параметры:
type - ImageTypeSpecifier , определяющий структуру записываемого изображения.
Возвращает:
true , если этот записыватель, скорее всего, сможет закодировать изображения с заданной структурой.
Исключения:
IllegalArgumentException - если type null.

canEncodeImage

public boolean canEncodeImage(RenderedImage im)
Возвращает true , если реализация ImageWriter , связанная с этим поставщиком сервиса, может закодировать данный экземпляр RenderedImage. Обратите внимание, что это включает экземпляры java.awt.image.BufferedImage.

См. обсуждение для canEncodeImage(ImageTypeSpecifier) для получения информации о семантике этого метода.

Параметры:
im - экземпляр RenderedImage для кодирования.
Возвращает:
true , если этот записыватель, скорее всего, сможет закодировать это изображение.
Исключения:
IllegalArgumentException - если im null.

createWriterInstance

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

Стандартная реализация просто возвращает createWriterInstance(null).

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

createWriterInstance

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

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

Как правило, плагин реализует этот метод с кодом, подобным return new MyImageWriter(this).

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

isOwnWriter

public boolean isOwnWriter(ImageWriter writer)
Возвращает true, если объект ImageWriter , переданный в качестве аргумента, является экземпляром ImageWriter , связанного с этим поставщиком услуг.
Parameters:
writer - экземпляр ImageWriter.
Returns:
true , если writer распознан
Throws:
IllegalArgumentException - если writer является null.

getImageReaderSpiNames

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

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

Этот механизм может быть использован для получения ImageReaders , которые будут генерировать метаданные, не относящиеся к пикселям (см. IIOExtraDataInfo ), в структуре, понятной ImageWriter. Считывая изображение и получая эти данные из одного из ImageReaders , полученных с помощью этого метода, и передавая их ImageWriter, программа-клиент может считывать изображение, каким-то образом его модифицировать и записать обратно, сохранив все метаданные, не понимая ничего о внутренней структуре метаданных или даже о формате изображения.

Returns:
массив String длиной не менее 1, содержащий имена ImageReaderSpi , или null.
See Also:
  • ImageIO.getImageReader(ImageWriter)
  • ImageReaderSpi.getImageWriterSpiNames()

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

Spec-Zone.ru

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