Класс 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- еслиtagSetsnull.
Подробное описание методов
createFromMetadata
public static TIFFDirectory createFromMetadata(IIOMetadata tiffImageMetadata) throws IIOInvalidTreeException
TIFFDirectory из содержимого объекта метаданных изображения. Указанный объект должен поддерживать формат метаданных изображения, поддерживаемый плагином TIFF ImageWriter plug-in. Обычно это либо собственный формат метаданных изображения 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, 2021, 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/17/docs/api/java.desktop/javax/imageio/plugins/tiff/TIFFDirectory.html