- 所有已实现的接口:
Cloneable
TIFFDirectory实例对应一个IFD,包含一组TIFFField s,每个实例对应IFD中的一个IFD Entry。
读取时,可以通过将 ImageReader.getImageMetadata() 返回的值传递给 createFromMetadata() 来创建 TIFFDirectory。然后可以使用此类中提供的访问器方法获取目录中的 TIFFField s。
写入时,ImageWriter 的 write() 方法之一使用的 IIOMetadata 对象可以由 getAsMetadata() 从 TIFFDirectory 创建。 TIFFDirectory 本身可以通过构造或从 ImageWriter.getDefaultImageMetadata() 返回的 IIOMetadata 对象创建。目录中的 TIFFField 可以使用此类中提供的修改器方法进行设置。
TIFFDirectory 知道与其关联的 TIFFTagSet 组中的标签编号。当从原生图像元数据对象创建 TIFFDirectory 时,这些标签集派生自 TIFFIFD 节点的 tagSets 属性。
TIFFDirectory 也可能有一个父级 TIFFTag 。如果该目录表示一个 IFD 而不是图像的根 IFD,则会发生这种情况。父标签是 IFD 条目的标签,它是指向 TIFFDirectory 表示的 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 s 或 TIFFTagSet s,它必须外部同步。
- 自从:
- 9
- 参见:
-
构造方法总结
构造方法构造方法描述TIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag) 构造一个TIFFDirectory,它知道一组给定的TIFFTagSets。 -
方法总结
修饰符和类型方法描述voidaddTagSet(TIFFTagSet tagSet) 添加一个元素到这个目录知道的TIFFTagSet组。void将 TIFF 字段添加到目录。clone()克隆目录和其中包含的所有字段。booleancontainsTIFFField(int tagNumber) 确定此目录中是否包含具有给定标记号的 TIFF 字段。static TIFFDirectorycreateFromMetadata(IIOMetadata tiffImageMetadata) 从图像元数据对象的内容创建一个TIFFDirectory实例。将目录转换为元数据对象。int返回此目录中TIFFField的数量。如果已定义,则返回此目录的父目录TIFFTag,否则返回null。getTag(int tagNumber) 返回此目录知道的TIFFTagSets。getTIFFField(int tagNumber) 从目录中检索 TIFF 字段。从目录中检索所有 TIFF 字段。voidremoveTagSet(TIFFTagSet tagSet) 从该目录知道的TIFFTagSet组中删除一个元素。voidremoveTIFFField(int tagNumber) 从目录中删除 TIFF 字段。void从目录中删除所有 TIFF 字段。
-
构造方法详细信息
-
TIFFDirectory
- 参数:
tagSets- 与此目录关联的TIFFTagSets。parentTag- 此目录的父目录TIFFTag;可能是null。- 抛出:
NullPointerException- 如果tagSets是null。
-
-
方法详情
-
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
返回此目录知道的TIFFTagSets。- 返回:
-
与此
TIFFDirectory关联的TIFFTagSet。
-
addTagSet
添加一个元素到这个目录知道的TIFFTagSet组。- 参数:
tagSet- 要添加的TIFFTagSet。- 抛出:
NullPointerException- 如果tagSet是null。
-
removeTagSet
从该目录知道的TIFFTagSet组中删除一个元素。- 参数:
tagSet- 要删除的TIFFTagSet。- 抛出:
NullPointerException- 如果tagSet是null。
-
getParentTag
如果已定义,则返回此目录的父目录TIFFTag,否则返回null。- 返回:
-
这个
TIFFDiectory或null的父级TIFFTag。
-
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- 如果无法克隆实例。- 参见:
-