- 所有已实现的接口:
-
Cloneable
TIFFDirectory实例对应于IFD,并包含一组TIFFField,每个TIFFField对应于IFD中的IFD条目。
在读取时,可以通过将ImageReader.getImageMetadata()返回的值传递给createFromMetadata()来创建一个TIFFDirectory。然后可以使用此类提供的访问器方法获取目录中的TIFFField。
在写入时,可以通过从TIFFDirectory创建一个IIOMetadata对象,用于ImageWriter的write()方法之一,通过getAsMetadata()。可以通过构造或从ImageWriter.getDefaultImageMetadata()返回的IIOMetadata对象创建TIFFDirectory。可以使用此类提供的修改器方法设置目录中的TIFFField。
TIFFDirectory知道与其关联的一组TIFFTagSet中的标记号。当从本机图像元数据对象创建TIFFDirectory时,这些标记集是从TIFFIFD节点的tagSets属性派生的。
TIFFDirectory还可能具有父TIFFTag。如果目录表示图像的根IFD之外的IFD,则会发生这种情况。父标记是指向由此TIFFDirectory表示的IFD的指针的IFD条目的标记。此父TIFFTag的TIFFTag.isIFDPointer()方法必须返回true。当从本机图像元数据对象创建TIFFDirectory时,父标记集是从相应的TIFFIFD节点的parentTagName属性设置的。请注意,具有非null父标记的TIFFDirectory实例将包含在具有标记字段等于所包含目录的父标记的TIFFField实例的数据字段中。
例如,考虑一个Exif图像。与Exif流中的Exif IFD对应的TIFFDirectory实例将具有父标记TAG_EXIF_IFD_POINTER,并将在其已知标记集中包括ExifTIFFTagSet。与此Exif IFD对应的TIFFDirectory将包含在一个TIFFField的数据字段中,该字段将进一步包含在与Exif图像的主IFD对应的TIFFDirectory中,该目录本身将具有一个null值的父标记。
请注意,此实现未同步。如果多个线程同时使用TIFFDirectory实例,并且至少有一个线程修改了目录,例如通过添加或删除TIFFField或TIFFTagSet,则必须在外部进行同步。
- 自:
- 9
- 参见:
-
Constructor Summary
ConstructorsConstructorDescriptionTIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag) 构造一个TIFFDirectory,该目录知道给定组的TIFFTagSet。 -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTagSet(TIFFTagSet tagSet) 将元素添加到此目录知道的一组TIFFTagSet中。void将TIFF字段添加到目录中。clone()克隆目录及其中包含的所有字段。booleancontainsTIFFField(int tagNumber) 确定此目录中是否包含具有给定标记号的TIFF字段。static TIFFDirectorycreateFromMetadata(IIOMetadata tiffImageMetadata) 从图像元数据对象的内容创建TIFFDirectory实例。将目录转换为元数据对象。int返回此目录中的TIFFField的数量。返回此目录的父TIFFTag(如果已定义),否则返回null。getTag(int tagNumber) 返回此目录知道的TIFFTagSet。getTIFFField(int tagNumber) 从目录中检索一个TIFF字段。从目录中检索所有TIFF字段。voidremoveTagSet(TIFFTagSet tagSet) 从此目录知道的一组TIFFTagSet中删除一个元素。voidremoveTIFFField(int tagNumber) 从目录中删除一个TIFF字段。void从目录中删除所有TIFF字段。
-
Constructor Details
-
TIFFDirectory
- 参数:
-
tagSets- 与此目录关联的TIFFTagSets。 -
parentTag- 此目录的父TIFFTag;可以为null。 - 抛出:
-
NullPointerException- 如果tagSets为null。
-
-
Method Details
-
createFromMetadata
public static TIFFDirectory createFromMetadata(IIOMetadata tiffImageMetadata) throws IIOInvalidTreeException 从图像元数据对象的内容创建TIFFDirectory实例。提供的对象必须支持TIFFImageWriter插件支持的图像元数据格式。这通常是TIFF本机图像元数据格式javax_imageio_tiff_image_1.0或Java Image I/O标准元数据格式javax_imageio_1.0。- 参数:
-
tiffImageMetadata- 支持兼容图像元数据格式的元数据对象。 - 返回:
-
从提供的元数据对象的内容填充的
TIFFDirectory。 - 抛出:
-
NullPointerException- 如果tiffImageMetadata为null。 -
IllegalArgumentException- 如果tiffImageMetadata不支持兼容的图像元数据格式。 -
IIOInvalidTreeException- 如果无法解析提供的元数据对象。
-
getTagSets
返回此目录知道的TIFFTagSet。- 返回:
-
与此
TIFFDirectory关联的TIFFTagSet。
-
addTagSet
将元素添加到此目录知道的一组TIFFTagSet中。- 参数:
-
tagSet- 要添加的TIFFTagSet。 - 抛出:
-
NullPointerException- 如果tagSet为null。
-
removeTagSet
从此目录知道的一组TIFFTagSet中删除一个元素。- 参数:
-
tagSet- 要删除的TIFFTagSet。 - 抛出:
-
NullPointerException- 如果tagSet为null。
-
getParentTag
返回此目录的父TIFFTag(如果已定义),否则返回null。- 返回:
-
此
TIFFDiectory的父TIFFTag或null。
-
getTag
- 参数:
-
tagNumber- 感兴趣的标签号。 - 返回:
-
相应的
TIFFTag或null。
-
getNumTIFFFields
public int getNumTIFFFields()返回此目录中TIFFField的数量。- 返回:
-
此
TIFFDirectory中TIFFField的数量。
-
containsTIFFField
public boolean containsTIFFField(int tagNumber) 确定此目录中是否包含具有给定标签号的 TIFF 字段。- 参数:
-
tagNumber- 标签号。 - 返回:
-
此
TIFFDirectory中是否存在标签号等于tagNumber的TIFFTag。
-
addTIFFField
向目录中添加一个 TIFF 字段。- 参数:
-
f- 要添加的字段。 - 抛出:
-
NullPointerException- 如果f为null。
-
getTIFFField
从目录中检索一个 TIFF 字段。- 参数:
-
tagNumber- 与字段关联的标签号。 - 返回:
-
请求的标签号的
TIFFField或null(如果不存在这样的字段)。
-
removeTIFFField
public void removeTIFFField(int tagNumber) 从目录中删除一个 TIFF 字段。- 参数:
-
tagNumber- 与字段关联的标签号。
-
getTIFFFields
从目录中检索所有 TIFF 字段。- 返回:
- 按照标签号的数字递增顺序的所有 TIFF 字段的数组。
-
removeTIFFFields
public void removeTIFFFields()从目录中删除所有 TIFF 字段。 -
getAsMetadata
将目录转换为元数据对象。- 返回:
-
从此
TIFFDirectory的内容初始化的元数据实例。
-
clone
克隆目录及其中包含的所有字段。- 覆盖:
-
clone在类Object中 - 返回:
-
此
TIFFDirectory的克隆。 - 抛出:
-
CloneNotSupportedException- 如果无法克隆该实例。 - 参见:
-