Класс TIFFDirectory
- Все реализуемые интерфейсы:
Cloneable
public class TIFFDirectory extends Object implements Cloneable
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, соответствующий каталогу Exif в потоке Exif, будет иметь родительский тег TAG_EXIF_IFD_POINTER и включать в себя ExifTIFFTagSet в своей группе известных наборов тегов. Экземпляр класса TIFFDirectory, соответствующий этому каталогу Exif, будет содержаться в поле данных экземпляра класса TIFFField, который в свою очередь будет содержаться в TIFFDirectory, соответствующем основному каталогу изображения Exif, который сам по себе будет иметь родительский тег со значением null.
Обратите внимание, что данная реализация не синхронизирована. Если несколько потоков одновременно используют экземпляр класса TIFFDirectory, и по крайней мере один из потоков изменяет каталог, например, добавляя или удаляя TIFFField или TIFFTagSet, необходимо обеспечить внешнюю синхронизацию.
- Since:
- 9
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
TIFFDirectory |
Создаёт экземпляр класса TIFFDirectory, который знает заданную группу TIFFTagSet. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
addTagSet |
Добавляет элемент в группу TIFFTagSet, о которых знает этот каталог. |
void |
addTIFFField |
Добавляет поле TIFF в каталог. |
TIFFDirectory |
clone() |
Создаёт копию каталога и всех содержащихся в нём полей. |
boolean |
containsTIFFField |
Определяет, содержится ли в этом каталоге поле TIFF с заданным номером тега. |
static TIFFDirectory |
createFromMetadata |
Создаёт экземпляр класса TIFFDirectory на основе содержимого объекта метаданных изображения. |
IIOMetadata |
getAsMetadata() |
Преобразует каталог в объект метаданных. |
int |
getNumTIFFFields() |
Возвращает количество TIFFField в этом каталоге. |
TIFFTag |
getParentTag() |
Возвращает родительский TIFFTag этого каталога, если он определён, или null в противном случае. |
TIFFTag |
getTag |
Возвращает TIFFTag с номером тега равным tagNumber или null, если такого тега нет в TIFFTagSet связанных с этим каталогом. |
TIFFTagSet[] |
getTagSets() |
Возвращает TIFFTagSet, о которых знает этот каталог. |
TIFFField |
getTIFFField |
Возвращает поле TIFF из каталога. |
TIFFField[] |
getTIFFFields() |
Возвращает все поля TIFF из каталога. |
void |
removeTagSet |
Удаляет элемент из группы TIFFTagSet, о которых знает этот каталог. |
void |
removeTIFFField |
Удаляет поле TIFF из каталога. |
void |
removeTIFFFields() |
Удаляет все поля TIFF из каталога. |
Подробное описание конструкторов
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)
- Параметры:
-
tagNumber- Номер тега. - Возвращает:
- Присутствует ли
TIFFTagс номером тега, равнымtagNumber, в этомTIFFDirectory.
addTIFFField
public void addTIFFField(TIFFField f)
- Параметры:
-
f- Поле для добавления. - Исключения:
-
NullPointerException- еслиfявляетсяnull.
getTIFFField
public TIFFField getTIFFField(int tagNumber)
- Параметры:
-
tagNumber- Номер тега, связанного с полем. - Возвращает:
TIFFFieldс запрошенным номером тегаnull, если такое поле отсутствует.
removeTIFFField
public void removeTIFFField(int tagNumber)
- Параметры:
-
tagNumber- Номер тега, связанного с полем.
getTIFFFields
public TIFFField[] getTIFFFields()
- Возвращает:
- Массив всех полей TIFF в порядке возрастания номера тега.
removeTIFFFields
public void removeTIFFFields()
getAsMetadata
public IIOMetadata getAsMetadata()
- Возвращает:
- Экземпляр метаданных, инициализированный содержимым этого
TIFFDirectory.
clone
public TIFFDirectory clone() throws CloneNotSupportedException
- Переопределяет:
-
cloneв классеObject - Возвращает:
- Клон этого
TIFFDirectory. - Исключения:
-
CloneNotSupportedException- если экземпляр не может быть клонирован. - См. также:
© 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFDirectory.html