Интерфейс ImageTranscoder
- Все известные реализующие классы:
ImageWriter
public interface ImageTranscoder
Любое изображение может быть транскодировано (записано в формате, отличном от исходного) путем выполнения операции чтения, за которой следует операция записи. Однако в этом процессе может произойти потеря данных из-за различий в форматах.
В общем случае лучшие результаты будут достигнуты, когда будут созданы объекты метаданных, специфичные для формата, для того, чтобы максимально охватить информацию об изображении и связанных с ним метаданных, понятную для конкретного ImageWriter для выполнения кодирования.
Может быть использован ImageTranscoder, для преобразования объектов IIOMetadata, предоставляемых ImageReader, (представляющих метаданные для каждого потока и каждого изображения) в соответствующие объекты, пригодные для кодирования конкретным ImageWriter. В случае, когда методы этого интерфейса вызываются непосредственно на ImageWriter, выходные данные будут пригодны для этого записывателя.
Внутренние детали преобразования объекта IIOMetadata в формат, специфичный для записывателя, будут зависеть от контекста операции. Обычно ImageWriter будет проверять входящий объект на предмет реализации дополнительных интерфейсов, с которыми знаком записыватель. Такая ситуация может возникнуть, например, если объект был получен посредством операции чтения из плагина-читателя, написанного тем же производителем, что и записыватель. В этом случае записыватель может получить доступ к входящему объекту через специфичные для плагина интерфейсы. В этом случае повторное кодирование может быть близким к безпотери, если формат файла изображения остается неизменным. Если формат изменяется, записыватель все же может попытаться сохранить как можно больше информации.
Если входящий объект не реализует никаких дополнительных интерфейсов, известных записывателю, записыватель не имеет другого выбора, кроме как получить к нему доступ через стандартные интерфейсы IIOMetadata, такие как представление дерева, предоставляемое IIOMetadata.getAsTree. В этом случае, вероятно, произойдет значительная потеря информации.
Независимый ImageTranscoder в сущности играет ту же роль, что и плагин-записыватель в приведенных выше примерах. Он должен быть знаком с закрытыми интерфейсами, используемыми как плагином-читателем, так и плагином-записывателем, и вручную создать объект, который будет пригоден для использования записывателем. Полученные объекты метаданных могут быть непосредственно использованы записывателем.
Независимые реализации ImageTranscoder не предоставляются в рамках стандартного API. Вместо этого, цель данного интерфейса состоит в том, чтобы предоставить приложениям способ создания и обнаружения реализаций по мере необходимости.
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
IIOMetadata |
convertImageMetadata |
Возвращает объект IIOMetadata, который может быть использован для кодирования и, по желанию, изменён с помощью его интерфейсов документов или других интерфейсов, специфичных для плагина записывателя, который будет использован для кодирования. |
IIOMetadata |
convertStreamMetadata |
Возвращает объект 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, 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/ImageTranscoder.html