Интерфейс 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 |
convertStreamMetadata(IIOMetadata inData,
ImageWriteParam param) Возвращает объект |
Методы
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.