- java.lang.Object
-
- javax.imageio.plugins.tiff.TIFFDirectory
-
- All Implemented Interfaces:
-
Cloneable
public class TIFFDirectory extends Object implements Cloneable
简化与TIFF本地图像元数据交互的便利类。 TIFF图像元数据树表示来自TIFF 6.0流的图像文件目录(IFD)。 IFD由多个IFD条目组成,每个IFD条目将识别标签号与兼容值相关联。 ATIFFDirectory实例对应于IFD,并且包含一组TIFFField,其各自对应于IFD中的IFD条目。阅读时,可以通过将
ImageReader.getImageMetadata()返回的值传递给TIFFDirectory来创建一个TIFFDirectory 。 目录中的TIFFField可以使用此类中提供的访问器方法获取。当写入时,一个
IIOMetadata对象供的一个write()的方法ImageWriter可以由创建TIFFDirectory通过getAsMetadata()。TIFFDirectory本身可以通过构造或由IIOMetadata返回的IIOMetadata对象创建 。 目录中的TIFFField可以使用此类中提供的mutator方法设置。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的数据字段中,该数据字段又将包含在对应于Exif映像的主IFD的TIFFDirectory,该IFD本身将具有一个null父标记。请注意,此实现不同步。 如果多个线程并发使用
TIFFDirectory实例,并且至少有一个线程修改目录,例如,通过添加或删除TIFFField或TIFFTagSets,则必须从外部进行同步。- 从以下版本开始:
- 9
- 另请参见:
-
IIOMetadata,TIFFField,TIFFTag,TIFFTagSet
-
-
构造方法摘要
构造方法 Constructor 描述 TIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag)构造一个TIFFDirectory,它知道一组TIFFTagSets。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 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)如果与此目录相关联的TIFFTagSet中没有此类标记,则返回TIFFTag,其标签号等于tagNumber或null。TIFFTagSet[]getTagSets()返回此目录知道的TIFFTagSets。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,它知道给定的一组TIFFTagSets。 也可以指定可选的父项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- 支持兼容图像元数据格式的元数据对象。 - 结果
-
A
TIFFDirectory从提供的元数据对象的内容中填充。 - 异常
-
NullPointerException- 如果tiffImageMetadata是null。 -
IllegalArgumentException- 如果tiffImageMetadata不支持兼容的图像元数据格式。 -
IIOInvalidTreeException- 如果提供的元数据对象无法解析。
-
getTagSets
public TIFFTagSet[] getTagSets()
返回此目录知道的TIFFTagSets。- 结果
-
该
TIFFTagSet与此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。- 结果
-
父
TIFFTag如此TIFFDiectory或者null。
-
getTag
public TIFFTag getTag(int tagNumber)
如果与此目录相关联的TIFFTagSet中没有此类标签,则返回TIFFTag,其标签号等于tagNumber或null。- 参数
-
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- 与该字段关联的标签的标签号。 - 结果
-
A
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
-
-