Класс 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(). Поля 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) | Создаёт экземпляр |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | addTagSet(TIFFTagSet tagSet) | Добавляет элемент в группу |
void | addTIFFField(TIFFField f) | Добавляет поле TIFF в директорию. |
TIFFDirectory | clone() | Создаёт копию директории и всех содержащихся в ней полей. |
boolean | containsTIFFField(int tagNumber) | Определяет, содержит ли эта директория поле TIFF с заданным номером тега. |
static TIFFDirectory | createFromMetadata(IIOMetadata tiffImageMetadata) | Создаёт экземпляр |
IIOMetadata | getAsMetadata() | Преобразует директорию в объект метаданных. |
int | getNumTIFFFields() | Возвращает количество |
TIFFTag | getParentTag() | Возвращает родительский |
TIFFTag | getTag(int tagNumber) | Возвращает |
TIFFTagSet[] | getTagSets() | Возвращает наборы |
TIFFField | getTIFFField(int tagNumber) | Извлекает поле TIFF из директории. |
TIFFField[] | getTIFFFields() | Извлекает все поля TIFF из директории. |
void | removeTagSet(TIFFTagSet tagSet) | Удаляет элемент из группы |
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- еслиtagSetsnull.
Методы
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- еслиtiffImageMetadatanull. -
IllegalArgumentException- еслиtiffImageMetadataне поддерживает совместимый формат метаданных изображения. -
IIOInvalidTreeException- если предоставленный объект метаданных не может быть проанализирован.
getTagSets
public TIFFTagSet[] getTagSets()
Возвращает TIFFTagSet этого каталога.
- Возвращает:
TIFFTagSetдля этогоTIFFDirectory.
addTagSet
public void addTagSet(TIFFTagSet tagSet)
Добавляет элемент в группу TIFFTagSet этого каталога.
- Параметры:
-
tagSet-TIFFTagSetдля добавления. - Исключения:
-
NullPointerException- еслиtagSetnull.
removeTagSet
public void removeTagSet(TIFFTagSet tagSet)
Удаляет элемент из группы TIFFTagSet этого каталога.
- Параметры:
-
tagSet-TIFFTagSetдля удаления. - Исключения:
-
NullPointerException- еслиtagSetnull.
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- еслиfnull.
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