Класс 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, соответствующий IFD Exif в потоке Exif, будет иметь родительский тег TAG_EXIF_IFD_POINTER и будет включать ExifTIFFTagSet в группу известных ему наборов тегов. Объект TIFFDirectory, соответствующий этому IFD Exif, будет содержаться в поле данных объекта TIFFField, который, в свою очередь, будет содержаться в объекте TIFFDirectory, соответствующем основному IFD изображения Exif; у последнего родительский тег будет иметь значение null.
Обратите внимание, что эта реализация не является синхронизированной. Если несколько потоков одновременно используют экземпляр TIFFDirectory и хотя бы один из потоков изменяет каталог, например добавляет или удаляет объекты TIFFField или TIFFTagSet, доступ к нему необходимо синхронизировать извне.
- Начиная с версии:
- 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— номер тега. - Возвращает:
- Содержится ли в этом объекте
TIFFDirectoryобъектTIFFTagс номером тега, равнымtagNumber.
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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFDirectory.html