- java.lang.Object
-
- javax.imageio.plugins.tiff.TIFFDirectory
-
- 实现的所有接口
-
Cloneable
public class TIFFDirectory extends Object implements Cloneable
简化与TIFF本机图像元数据交互的便捷类。 TIFF图像元数据树表示来自TIFF 6.0流的图像文件目录(IFD)。 IFD由许多IFD条目组成,每个条目将识别标签号与兼容值相关联。TIFFDirectory实例对应于IFD并包含一组TIFFField,每个对应于IFD中的IFD条目。读取时,可以通过将
ImageReader.getImageMetadata()返回的值传递给TIFFDirectory来创建TIFFDirectory 。 然后可以使用此类中提供的访问器方法获取目录中的TIFFField。在写入时,可以从
TIFFDirectory(getAsMetadata())创建4770608987901 4770609994331的write()方法之一使用的IIOMetadata对象。TIFFDirectory本身可以通过构造或IIOMetadata返回的IIOMetadata对象创建 。 可以使用此类中提供的mutator方法设置目录中的TIFFField。A
TIFFDirectory知道与之关联的TIFFTagSet组中的标签号。 从本机图像元数据对象创建TIFFDirectory,这些标记集派生自TIFFIFD节点的tagSets属性。A
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的数据字段中,该数据字段又包含在TIFFDirectory中,该对应于Exif图像的主IFD,其本身具有null值的父标记。请注意,此实现不同步。 如果多个线程同时使用
TIFFDirectory实例,并且至少有一个线程修改了目录,例如,通过添加或删除TIFFField或TIFFTagSet,则必须在外部进行同步。- 从以下版本开始:
- 9
- 另请参见:
-
IIOMetadata,TIFFField,TIFFTag,TIFFTagSet
-
-
构造方法摘要
构造方法 构造器 描述 TIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag)构造一个TIFFDirectory,它知道给定的一组TIFFTagSet。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 voidaddTagSet(TIFFTagSet tagSet)将元素添加到此目录可识别的TIFFTagSet组中。voidaddTIFFField(TIFFField f)向目录添加TIFF字段。TIFFDirectoryclone()克隆目录及其中包含的所有字段。booleancontainsTIFFField(int tagNumber)确定此目录中是否包含具有给定标记号的TIFF字段。static TIFFDirectorycreateFromMetadata(IIOMetadata tiffImageMetadata)根据图像元数据对象的内容创建TIFFDirectory实例。IIOMetadatagetAsMetadata()将目录转换为元数据对象。intgetNumTIFFFields()返回此目录中TIFFField的数量。TIFFTaggetParentTag()如果已定义此目录,则返回此目录的父级TIFFTag;否则返回null。TIFFTaggetTag(int tagNumber)返回TIFFTag其中有等于标签编号tagNumber或null如果不存在这样的标签TIFFTagSet这个目录相关秒。TIFFTagSet[]getTagSets()返回此目录可识别的TIFFTagSet。TIFFFieldgetTIFFField(int tagNumber)从目录中检索TIFF字段。TIFFField[]getTIFFFields()从目录中检索所有TIFF字段。voidremoveTagSet(TIFFTagSet tagSet)从该目录可识别的TIFFTagSet组中删除一个元素。voidremoveTIFFField(int tagNumber)从目录中删除TIFF字段。voidremoveTIFFFields()从目录中删除所有TIFF字段。
-
-
-
构造方法详细信息
-
TIFFDirectory
public TIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag)
构造一个TIFFDirectory,它知道给定的一组TIFFTagSet。 还可以指定可选父级TIFFTag。- 参数
-
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
public TIFFTagSet[] getTagSets()
返回此目录可识别的TIFFTagSet。- 结果
-
TIFFTagSets与TIFFDirectory相关联。
-
addTagSet
public void addTagSet(TIFFTagSet tagSet)
将元素添加到此目录可识别的TIFFTagSet组中。- 参数
-
tagSet- 要添加的TIFFTagSet。 - 异常
-
NullPointerException- 如果tagSet是null。
-
removeTagSet
public void removeTagSet(TIFFTagSet tagSet)
从该目录可识别的TIFFTagSet组中删除元素。- 参数
-
tagSet- 要删除的TIFFTagSet。 - 异常
-
NullPointerException- 如果tagSet是null。
-
getParentTag
public TIFFTag getParentTag()
如果已定义此目录,则返回此目录的父级TIFFTag,否则返回null。- 结果
-
此
TIFFDiectory或null的父TIFFTagnull。
-
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- 如果f是null。
-
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
-
-