Spec-Zone.ru › OpenJDK 25

Класс TIFFDirectory

java.lang.Object
javax.imageio.plugins.tiff.TIFFDirectory
Все реализуемые интерфейсы:
Cloneable
public class TIFFDirectory extends Object implements Cloneable
Вспомогательный класс для упрощения взаимодействия с собственными метаданными изображений TIFF. Дерево метаданных изображения TIFF представляет собой каталог файлов изображений (IFD) из потока TIFF 6.0. IFD состоит из нескольких записей IFD, каждая из которых связывает идентифицирующий номер тега с соответствующим значением. Экземпляр TIFFDirectory соответствует IFD и содержит набор TIFFField, каждый из которых соответствует записи IFD в IFD.

При чтении объект TIFFDirectory можно создать, передав значение, возвращённое методом ImageReader.getImageMetadata(), методу createFromMetadata(). Затем объекты TIFFField в каталоге можно получить с помощью методов доступа, предоставляемых этим классом.

При записи объект IIOMetadata, используемый одним из методов write() класса ImageWriter, можно создать из объекта TIFFDirectory с помощью метода getAsMetadata(). Сам объект TIFFDirectory можно создать с помощью конструктора или получить из объекта IIOMetadata, возвращённого методом ImageWriter.getDefaultImageMetadata(). Объекты TIFFField в каталоге можно задать с помощью методов изменения, предоставляемых этим классом.

Объект TIFFDirectory учитывает номера тегов в группе объектов TIFFTagSet, связанных с ним. Когда объект TIFFDirectory создаётся из объекта собственных метаданных изображения, эти наборы тегов определяются атрибутом tagSets узла TIFFIFD.

У объекта TIFFDirectory также может быть родительский объект TIFFTag. Это происходит, если каталог представляет IFD, отличный от корневого IFD изображения. Родительский тег — это тег записи IFD, которая указывает на IFD, представленный данным объектом TIFFDirectory. Метод TIFFTag.isIFDPointer() этого родительского объекта TIFFTag должен возвращать true. Когда объект TIFFDirectory создаётся из объекта собственных метаданных изображения, родительский набор тегов задаётся атрибутом parentTagName соответствующего узла TIFFIFD. Обратите внимание, что экземпляр TIFFDirectory с родительским тегом, отличным от null, будет содержаться в поле данных экземпляра TIFFField, поле тега которого равно родительскому тегу вложенного каталога.

Рассмотрим в качестве примера изображение Exif. Экземпляр TIFFDirectory, соответствующий IFD Exif в потоке Exif, будет иметь родительский тег TAG_EXIF_IFD_POINTER и будет включать ExifTIFFTagSet в группу известных ему наборов тегов. Объект TIFFDirectory, соответствующий этому IFD Exif, будет содержаться в поле данных объекта TIFFField, который, в свою очередь, будет содержаться в объекте TIFFDirectory, соответствующем основному IFD изображения Exif; у последнего родительский тег будет иметь значение null.

Обратите внимание, что эта реализация не является синхронизированной. Если несколько потоков одновременно используют экземпляр TIFFDirectory и хотя бы один из потоков изменяет каталог, например добавляет или удаляет объекты TIFFField или TIFFTagSet, доступ к нему необходимо синхронизировать извне.

Начиная с версии:
9
См. также:
  • IIOMetadata
  • TIFFField
  • TIFFTag
  • TIFFTagSet

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

Конструктор Описание
TIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag)
Создаёт объект TIFFDirectory, учитывающий заданную группу объектов TIFFTagSet.

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

Модификатор и тип Метод Описание
void addTagSet(TIFFTagSet tagSet)
Добавляет элемент в группу объектов TIFFTagSet, о которой известно этому каталогу.
void addTIFFField(TIFFField f)
Добавляет поле TIFF в каталог.
TIFFDirectory clone()
Клонирует каталог и все содержащиеся в нём поля.
boolean containsTIFFField(int tagNumber)
Определяет, содержится ли в этом каталоге поле TIFF с заданным номером тега.
static TIFFDirectory createFromMetadata(IIOMetadata tiffImageMetadata)
Создаёт экземпляр TIFFDirectory из содержимого объекта метаданных изображения.
IIOMetadata getAsMetadata()
Преобразует каталог в объект метаданных.
int getNumTIFFFields()
Возвращает количество объектов TIFFField в этом каталоге.
TIFFTag getParentTag()
Возвращает родительский объект TIFFTag этого каталога, если он задан, или null в противном случае.
TIFFTag getTag(int tagNumber)
Возвращает объект TIFFTag с номером тега, равным tagNumber, или null, если такой тег отсутствует в связанных с этим каталогом наборах TIFFTagSet.
TIFFTagSet[] getTagSets()
Возвращает наборы TIFFTagSet, о которых известно этому каталогу.
TIFFField getTIFFField(int tagNumber)
Получает поле TIFF из каталога.
TIFFField[] getTIFFFields()
Получает все поля TIFF из каталога.
void removeTagSet(TIFFTagSet tagSet)
Удаляет элемент из группы объектов TIFFTagSet, о которой известно этому каталогу.
void removeTIFFField(int tagNumber)
Удаляет поле TIFF из каталога.
void removeTIFFFields()
Удаляет все поля TIFF из каталога.

Методы, объявленные в классе Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

TIFFDirectory

public TIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag)
Создаёт объект TIFFDirectory, учитывающий заданную группу объектов TIFFTagSet. Также можно указать необязательный родительский объект TIFFTag.
Параметры:
tagSets — объект TIFFTagSets, связанный с этим каталогом.
parentTag — родительский объект TIFFTag этого каталога; может быть равен null.
Исключения:
NullPointerException — если tagSets равен null.

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

createFromMetadata

public static TIFFDirectory createFromMetadata(IIOMetadata tiffImageMetadata) throws IIOInvalidTreeException
Создаёт экземпляр TIFFDirectory из содержимого объекта метаданных изображения. Переданный объект должен поддерживать формат метаданных изображения, поддерживаемый подключаемым модулем TIFF ImageWriter. Обычно это либо собственный формат метаданных изображения TIFF javax_imageio_tiff_image_1.0, либо стандартный формат метаданных Java Image I/O javax_imageio_1.0.
Параметры:
tiffImageMetadata — объект метаданных, поддерживающий совместимый формат метаданных изображения.
Возвращает:
Объект TIFFDirectory, заполненный содержимым переданного объекта метаданных.
Исключения:
NullPointerException — если tiffImageMetadata равен null.
IllegalArgumentException — если tiffImageMetadata не поддерживает совместимый формат метаданных изображения.
IIOInvalidTreeException — если переданный объект метаданных не удаётся разобрать.

getTagSets

public TIFFTagSet[] getTagSets()
Возвращает наборы TIFFTagSet, о которых известно этому каталогу.
Возвращает:
Наборы TIFFTagSet, связанные с этим объектом TIFFDirectory.

addTagSet

public void addTagSet(TIFFTagSet tagSet)
Добавляет элемент в группу объектов TIFFTagSet, о которой известно этому каталогу.
Параметры:
tagSet — объект TIFFTagSet, который нужно добавить.
Исключения:
NullPointerException — если tagSet равен null.

removeTagSet

public void removeTagSet(TIFFTagSet tagSet)
Удаляет элемент из группы объектов TIFFTagSet, о которой известно этому каталогу.
Параметры:
tagSet — объект TIFFTagSet, который нужно удалить.
Исключения:
NullPointerException — если tagSet равен null.

getParentTag

public TIFFTag getParentTag()
Возвращает родительский объект TIFFTag этого каталога, если он задан, или null в противном случае.
Возвращает:
Родительский объект TIFFTag этого объекта TIFFDiectory или null.

getTag

public TIFFTag getTag(int tagNumber)
Возвращает объект TIFFTag с номером тега, равным tagNumber, или null, если такой тег отсутствует в связанных с этим каталогом наборах TIFFTagSet.
Параметры:
tagNumber — интересующий номер тега.
Возвращает:
Соответствующий объект TIFFTag или null.

getNumTIFFFields

public int getNumTIFFFields()
Возвращает количество объектов TIFFField в этом каталоге.
Возвращает:
Количество объектов TIFFField в этом объекте TIFFDirectory.

containsTIFFField

public boolean containsTIFFField(int tagNumber)
Определяет, содержится ли в этом каталоге поле TIFF с заданным номером тега.
Параметры:
tagNumber — номер тега.
Возвращает:
Содержится ли в этом объекте TIFFDirectory объект TIFFTag с номером тега, равным tagNumber.

addTIFFField

public void addTIFFField(TIFFField f)
Добавляет поле TIFF в каталог.
Параметры:
f — поле, которое нужно добавить.
Исключения:
NullPointerException — если f равен null.

getTIFFField

public TIFFField getTIFFField(int tagNumber)
Получает поле TIFF из каталога.
Параметры:
tagNumber — номер тега, связанного с полем.
Возвращает:
Объект TIFFField с запрошенным номером тега или null, если такое поле отсутствует.

removeTIFFField

public void removeTIFFField(int tagNumber)
Удаляет поле TIFF из каталога.
Параметры:
tagNumber — номер тега, связанного с полем.

getTIFFFields

public TIFFField[] getTIFFFields()
Получает все поля TIFF из каталога.
Возвращает:
Массив всех полей TIFF в порядке возрастания числовых значений номеров тегов.

removeTIFFFields

public void removeTIFFFields()
Удаляет все поля TIFF из каталога.

getAsMetadata

public IIOMetadata getAsMetadata()
Преобразует каталог в объект метаданных.
Возвращает:
Экземпляр метаданных, инициализированный содержимым этого объекта TIFFDirectory.

clone

public TIFFDirectory clone() throws CloneNotSupportedException
Клонирует каталог и все содержащиеся в нём поля.
Переопределяет:
clone в классе Object
Возвращает:
Клон этого объекта TIFFDirectory.
Исключения:
CloneNotSupportedException — если экземпляр невозможно клонировать.
См. также:
  • Cloneable

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, способы обхода проблем и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFDirectory.html

Spec-Zone.ru

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