Класс TIFFDirectory
- Все реализованные интерфейсы:
Cloneable
public class TIFFDirectory extends Object implements Cloneable
TIFFDirectory соответствует IFD и содержит набор TIFFField, каждый из которых соответствует записи IFD в IFD. При чтении экземпляр TIFFDirectory может быть создан путём передачи значения, возвращаемого методом ImageReader.getImageMetadata(), методу createFromMetadata(). После этого поля TIFFField в каталоге могут быть получены с помощью методов доступа, предоставляемых в этом классе.
При записи объект IIOMetadata для использования одним из методов write() класса ImageWriter может быть создан из экземпляра TIFFDirectory при помощи метода getAsMetadata(). Сам этот экземпляр может быть создан при помощи конструктора или из объекта 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, необходимо обеспечить внешнюю синхронизацию.
- 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- если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)
- Параметры:
-
tagNumber- Номер тега. - Возвращает:
- Наличие
TIFFTagс номером тега, равнымtagNumber, в данномTIFFDirectory.
addTIFFField
public void addTIFFField(TIFFField f)
- Параметры:
-
f- Поле для добавления. - Исключения:
-
NullPointerException- еслиfnull.
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, 2023, 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/21/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFDirectory.html