Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
boolean equals(Object obj)
Показывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Метод finalize устарел и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо истечения заданного промежутка реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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