Класс 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(). Поля TIFFDirectory в директории могут быть установлены с помощью методов-модификаторов, предоставляемых в этом классе.

Экземпляр класса 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 из директории.

Методы, объявленные в классе java.lang.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 - Номер тега.
Возвращает:
Наличие TIFFTag с номером тега, равным tagNumber, в этом TIFFDirectory.

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

© 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFDirectory.html

Spec-Zone .ru
спецификации, руководства, описания, API