Spec-Zone.ru › OpenJDK 8

Интерфейс ImageTranscoder

Все известные реализующие классы:
ImageWriter

public interface ImageTranscoder

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

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

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

Можно использовать ImageTranscoder, чтобы преобразовать объекты IIOMetadata, предоставляемые ImageReader (представляющие метаданные по потоку и по изображению), в соответствующие объекты, пригодные для кодирования определенным ImageWriter. В случае, когда методы этого интерфейса вызываются непосредственно на ImageWriter, выходные данные будут пригодны для этого записывателя.

Внутренние детали преобразования объекта IIOMetadata в формат, специфичный для записывателя, будут различаться в зависимости от контекста операции. Как правило, ImageWriter проверит входящий объект, чтобы увидеть, реализует ли он дополнительные интерфейсы, с которыми знаком записыватель. Это может быть, например, в случае, если объект был получен посредством операции чтения в плагине-чтеце, написанном тем же поставщиком, что и записыватель. В этом случае записыватель может получить доступ к входящему объекту через свои специфичные для плагина интерфейсы. В этом случае повторное кодирование может быть близким к безпотеричному, если формат файла изображения остается неизменным. Если формат изменяется, записыватель по-прежнему может попытаться сохранить как можно больше информации.

Если входящий объект не реализует какие-либо дополнительные интерфейсы, известные записывателю, записыватель не имеет выбора, кроме как получить к нему доступ через стандартные IIOMetadata интерфейсы, такие как представление дерева, предоставляемое IIOMetadata.getAsTree. В этом случае, вероятно, произойдет значительная потеря информации.

Независимый ImageTranscoder по существу играет ту же роль, что и плагин записывателя в приведенных выше примерах. Он должен быть знаком с частными интерфейсами, используемыми как плагинами чтения, так и записи, и вручную создать объект, который будет пригоден для использования записывателем. Полученные объекты метаданных могут быть использованы записывателем непосредственно.

Независимые реализации ImageTranscoder не предоставляются в стандартном API. Вместо этого, цель этого интерфейса состоит в том, чтобы предоставить способ создания и обнаружения реализаций приложениями по мере необходимости.

Методы

Модификатор и тип Метод и описание
IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)

Возвращает объект IIOMetadata, который может быть использован для кодирования и, при необходимости, изменён с помощью его интерфейсов документа или других интерфейсов, специфичных для плагина записывателя, который будет использоваться для кодирования.

IIOMetadata convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)

Возвращает объект IIOMetadata, который может быть использован для кодирования и, при необходимости, изменён с помощью его интерфейсов документа или других интерфейсов, специфичных для плагина записывателя, который будет использоваться для кодирования.

Методы

convertStreamMetadata

IIOMetadata convertStreamMetadata(IIOMetadata inData,
                                  ImageWriteParam param)

Возвращает объект IIOMetadata, который может быть использован для кодирования и, при необходимости, изменён с помощью его интерфейсов документа или других интерфейсов, специфичных для плагина записывателя, который будет использоваться для кодирования.

Допускается передача необязательного ImageWriteParam, в случаях, когда это может повлиять на структуру метаданных потока.

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

Параметры:
inData - объект IIOMetadata, представляющий метаданные потока, используемый для инициализации состояния возвращаемого объекта.
param - ImageWriteParam, который будет использоваться для кодирования изображения, или null.
Возвращает:
объект IIOMetadata, или null, если плагин не предоставляет возможности кодирования метаданных.
Исключения:
IllegalArgumentException - если inData является null.

convertImageMetadata

IIOMetadata convertImageMetadata(IIOMetadata inData,
                                 ImageTypeSpecifier imageType,
                                 ImageWriteParam param)

Возвращает объект IIOMetadata, который может быть использован для кодирования и, при необходимости, изменён с помощью его интерфейсов документа или других интерфейсов, специфичных для плагина записывателя, который будет использоваться для кодирования.

Допускается передача необязательного ImageWriteParam, в случаях, когда это может повлиять на структуру метаданных изображения.

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

Параметры:
inData - объект IIOMetadata, представляющий метаданные изображения, используемый для инициализации состояния возвращаемого объекта.
imageType - ImageTypeSpecifier, указывающий на макет и информацию о цвете изображения, с которым будут связаны метаданные.
param - ImageWriteParam, который будет использоваться для кодирования изображения, или null.
Возвращает:
объект IIOMetadata, или null, если плагин не предоставляет возможности кодирования метаданных.
Исключения:
IllegalArgumentException - если любой из inData или imageType является null.

© 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