- 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
。
-
方法摘要
所有方法 静态方法 实例方法 具体的方法 变量和类型 方法 描述 void
addTagSet(TIFFTagSet tagSet)
将元素添加到此目录可识别的TIFFTagSet
组中。void
addTIFFField(TIFFField f)
向目录添加TIFF字段。TIFFDirectory
clone()
克隆目录及其中包含的所有字段。boolean
containsTIFFField(int tagNumber)
确定此目录中是否包含具有给定标记号的TIFF字段。static TIFFDirectory
createFromMetadata(IIOMetadata tiffImageMetadata)
根据图像元数据对象的内容创建TIFFDirectory
实例。IIOMetadata
getAsMetadata()
将目录转换为元数据对象。int
getNumTIFFFields()
返回此目录中TIFFField
的数量。TIFFTag
getParentTag()
如果已定义此目录,则返回此目录的父级TIFFTag
;否则返回null
。TIFFTag
getTag(int tagNumber)
返回TIFFTag
其中有等于标签编号tagNumber
或null
如果不存在这样的标签TIFFTagSet
这个目录相关秒。TIFFTagSet[]
getTagSets()
返回此目录可识别的TIFFTagSet
。TIFFField
getTIFFField(int tagNumber)
从目录中检索TIFF字段。TIFFField[]
getTIFFFields()
从目录中检索所有TIFF字段。void
removeTagSet(TIFFTagSet tagSet)
从该目录可识别的TIFFTagSet
组中删除一个元素。void
removeTIFFField(int tagNumber)
从目录中删除TIFF字段。void
removeTIFFFields()
从目录中删除所有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
。- 结果
-
TIFFTagSet
s与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
的父TIFFTag
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)
确定此目录中是否包含具有给定标记号的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
-
-