Spec-Zone.ru › OpenJDK 8

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

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

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

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

Создаёт ImageWriterSpi с заданными значениями.

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

Модификатор и тип Метод и описание
abstract boolean canEncodeImage(ImageTypeSpecifier type)

Возвращает true, если реализация ImageWriter данного поставщика сервиса способна закодировать изображение с данным макетом.

boolean canEncodeImage(RenderedImage im)

Возвращает true, если реализация ImageWriter данного поставщика сервиса способна закодировать данный экземпляр RenderedImage.

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 , связанным с этим поставщиком услуг.

Параметры:
writer - экземпляр ImageWriter.
Возвращает:
true , если writer распознан
Исключения:
IllegalArgumentException - если writer равно null.

getImageReaderSpiNames

public String[] getImageReaderSpiNames()

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

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

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

Возвращает:
массив Strings длиной не менее 1, содержащий имена ImageReaderSpis, или null.
См. также:
ImageIO.getImageReader(ImageWriter), ImageReaderSpi.getImageWriterSpiNames()

© 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