IIOMetadataNode对象树。这些树的格式取决于插件,但插件可以选择支持下面描述的插件中立格式。单个插件可以支持多个元数据格式,这些格式的名称可以通过调用getMetadataFormatNames来确定。插件还可以支持一种特殊格式,称为“本机”格式,旨在无损编码其元数据。该格式通常专门设计用于与特定文件格式一起工作,以便图像可以在相同格式中加载和保存而不丢失元数据,但可能不太适用于在不同图像格式的ImageReader和ImageWriter之间传输元数据。要在两种本机格式之间进行尽可能无损地转换,必须使用ImageTranscoder对象。
- 参见:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected IIOMetadataController将在调用activateController方法时用于为此IIOMetadata对象提供设置的IIOMetadataController。protected IIOMetadataController建议用作此IIOMetadata对象控制器的IIOMetadataController。protected String[]一个类名数组,表示由此插件支持的元数据格式的类名,除了标准和本机格式之外,初始化为null并通过构造函数设置。protected String[]一个格式名称数组,表示由此插件支持的格式,除了标准和本机格式之外,初始化为null并通过构造函数设置。protected String表示本机元数据格式的IIOMetadataFormat类名,初始化为null并通过构造函数设置。protected String此对象的本机元数据格式的名称,初始化为null并通过构造函数设置。protected boolean一个布尔值,指示具体子类是否支持标准元数据格式,通过构造函数设置。 -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected构造一个空的IIOMetadata对象。protectedIIOMetadata(boolean standardMetadataFormatSupported, String nativeMetadataFormatName, String nativeMetadataFormatClassName, String[] extraMetadataFormatNames, String[] extraMetadataFormatClassNames) 构造一个IIOMetadata对象,具有给定的格式名称和格式类名,以及指示是否支持标准格式的布尔值。 -
Method Summary
Modifier and TypeMethodDescriptionboolean激活此IIOMetadata对象的安装IIOMetadataController并返回结果值。abstract Node返回一个XML DOMNode对象,表示根据给定元数据格式定义的约定,此对象中包含的元数据树的根。返回当前安装的IIOMetadataController。返回默认的IIOMetadataController,如果有的话,而不管当前安装的控制器是什么。String[]返回一个包含其他元数据格式名称的String数组,除了本机和标准格式之外,由此插件的getAsTree、setFromTree和mergeTree方法识别。getMetadataFormat(String formatName) 返回描述给定元数据格式的IIOMetadataFormat对象,如果没有可用的描述,则返回null。String[]返回一个包含所有元数据格式名称的String数组,包括插件的getAsTree、setFromTree和mergeTree方法识别的本机和标准格式。返回此插件的“本机”元数据格式的名称,通常允许以无损方式编码和传输由此插件处理的格式中存储的元数据。protected IIOMetadataNode返回表示标准javax_imageio_1.0元数据格式的色度信息的IIOMetadataNode,如果没有此类信息,则返回null。protected IIOMetadataNode返回表示标准javax_imageio_1.0元数据格式的压缩信息的IIOMetadataNode,如果没有此类信息,则返回null。protected IIOMetadataNode返回表示标准javax_imageio_1.0元数据格式的数据格式信息的IIOMetadataNode,如果没有此类信息,则返回null。protected IIOMetadataNode返回表示标准javax_imageio_1.0元数据格式的尺寸信息的IIOMetadataNode,如果没有此类信息,则返回null。protected IIOMetadataNode返回表示标准javax_imageio_1.0元数据格式的文档信息的IIOMetadataNode,如果没有此类信息,则返回null。protected IIOMetadataNode返回表示标准javax_imageio_1.0元数据格式的文本信息的IIOMetadataNode,如果没有此类信息,则返回null。protected IIOMetadataNode返回表示标准javax_imageio_1.0元数据格式的平铺信息的IIOMetadataNode,如果没有此类信息,则返回null。protected IIOMetadataNode返回表示标准javax_imageio_1.0元数据格式的透明度信息的IIOMetadataNode,如果没有此类信息,则返回null。protected final IIOMetadataNode一个实用方法,返回一个IIOMetadataNode树,表示根据标准javax_imageio_1.0元数据格式的约定,此对象中包含的元数据。boolean如果为此IIOMetadata对象安装了控制器,则返回true。abstract boolean如果此对象不支持mergeTree、setFromTree和reset方法,则返回true。boolean如果标准元数据格式受getMetadataFormat、getAsTree、setFromTree和mergeTree支持,则返回true。abstract void根据给定的元数据格式,从定义的XML DOMNode树中的树改变此IIOMetadata对象的内部状态。abstract voidreset()将此对象中存储的所有数据重置为默认值,通常是在构造后立即处于的状态,尽管确切的语义是特定于插件的。voidsetController(IIOMetadataController controller) 设置用于在调用activateController方法时为此IIOMetadata对象提供设置的IIOMetadataController,覆盖任何默认控制器。voidsetFromTree(String formatName, Node root) 根据给定的元数据格式,从定义的XML DOMNode树中设置此IIOMetadata对象的内部状态。
-
Field Details
-
standardFormatSupported
protected boolean standardFormatSupported一个布尔值,指示具体子类是否支持标准元数据格式,通过构造函数设置。 -
nativeMetadataFormatName
此对象的本机元数据格式的名称,初始化为null并通过构造函数设置。 -
nativeMetadataFormatClassName
表示本机元数据格式的IIOMetadataFormat类名,初始化为null并通过构造函数设置。 -
extraMetadataFormatNames
一个格式名称数组,表示由此插件支持的格式,除了标准和本机格式之外,初始化为null并通过构造函数设置。 -
extraMetadataFormatClassNames
一个类名数组,表示由此插件支持的元数据格式的类名,除了标准和本机格式之外,初始化为null并通过构造函数设置。 -
defaultController
建议用作此IIOMetadata对象控制器的IIOMetadataController。可以通过getDefaultController检索此实例变量。要安装默认控制器,请调用setController(getDefaultController())。应该由选择提供自己默认控制器的子类设置此实例变量,通常是用于设置参数的GUI。- 参见:
-
controller
将在调用activateController方法时用于为此IIOMetadata对象提供设置的IIOMetadataController。即使null,此值也会覆盖任何默认控制器。- 参见:
-
-
Constructor Details
-
IIOMetadata
protected IIOMetadata()构造一个空的IIOMetadata对象。子类负责为所有受保护的实例变量提供值,以使任何未被覆盖的默认方法实现能够满足其契约。例如,extraMetadataFormatNames不应该长度为0。 -
IIOMetadata
protected IIOMetadata(boolean standardMetadataFormatSupported, String nativeMetadataFormatName, String nativeMetadataFormatClassName, String[] extraMetadataFormatNames, String[] extraMetadataFormatClassNames) 使用给定的格式名称和格式类名称构造一个IIOMetadata对象,以及一个布尔值指示是否支持标准格式。此构造函数不会尝试检查类名的有效性。无效的类名可能会导致对
getMetadataFormat的后续调用引发异常。- 参数:
-
standardMetadataFormatSupported- 如果此对象可以使用标准元数据格式返回或接受DOM树,则为true。 -
nativeMetadataFormatName- 本机元数据格式的名称,作为String,如果没有本机格式,则为null。 -
nativeMetadataFormatClassName- 本机元数据格式的类名,如果没有本机格式,则为null。 -
extraMetadataFormatNames- 一个String数组,指示此对象支持的其他格式,如果没有,则为null。 -
extraMetadataFormatClassNames- 一个String数组,指示此对象支持的任何其他格式的类名,如果没有,则为null。 - 抛出:
-
IllegalArgumentException- 如果extraMetadataFormatNames长度为0。 -
IllegalArgumentException- 如果extraMetadataFormatNames和extraMetadataFormatClassNames既不是null,也不是相同长度。
-
-
Method Details
-
isStandardMetadataFormatSupported
public boolean isStandardMetadataFormatSupported()如果getMetadataFormat,getAsTree,setFromTree和mergeTree支持标准元数据格式,则返回true。默认实现返回
standardFormatSupported实例变量的值。- 返回:
-
如果支持标准元数据格式,则返回
true。 - 参见:
-
isReadOnly
public abstract boolean isReadOnly()如果此对象不支持mergeTree,setFromTree和reset方法,则返回true。- 返回:
-
如果此
IIOMetadata对象无法修改,则返回true。
-
getNativeMetadataFormatName
返回此插件的“本机”元数据格式的名称,该格式通常允许对由此插件处理的格式中存储的元数据进行无损编码和传输。如果不支持此类格式,则将返回null。“本机”元数据格式的结构和内容由创建此
IIOMetadata对象的插件定义。简单格式的插件通常会为根节点创建一个虚拟节点,然后创建一系列表示单个标记、块或关键字/值对的子节点。插件可以选择是否记录其本机格式。默认实现返回
nativeMetadataFormatName实例变量的值。- 返回:
-
本机格式的名称,或
null。 - 参见:
-
getExtraMetadataFormatNames
返回一个包含除本机和标准格式之外,由此插件的getAsTree,setFromTree和mergeTree方法识别的其他元数据格式的名称的String数组。如果没有这样的附加格式,则返回null。默认实现返回
extraMetadataFormatNames实例变量的克隆。- 返回:
-
至少长度为1的
String数组,或null。 - 参见:
-
getMetadataFormatNames
返回一个包含所有元数据格式的名称的String数组,包括本机和标准格式,由此插件的getAsTree,setFromTree和mergeTree方法识别。如果没有这样的格式,则返回null。默认实现调用
getNativeMetadataFormatName,isStandardMetadataFormatSupported和getExtraMetadataFormatNames,并返回组合的结果。- 返回:
-
一个
String数组。 - 参见:
-
getMetadataFormat
返回描述给定元数据格式的IIOMetadataFormat对象,如果没有可用的描述,则返回null。提供的名称必须是getMetadataFormatNames返回的名称之一(即本机格式名称、标准格式名称或getExtraMetadataFormatNames返回的名称之一)。默认实现检查名称是否与全局标准元数据格式名称匹配,并在支持时返回该格式。否则,它会检查本机格式名称,然后是任何其他格式名称。如果找到匹配项,它将从
nativeMetadataFormatClassName或extraMetadataFormatClassNames中检索IIOMetadataFormat类的名称,并使用其getInstance方法构造该类的实例。- 参数:
-
formatName- 所需的元数据格式。 - 返回:
-
一个
IIOMetadataFormat对象。 - 抛出:
-
IllegalArgumentException- 如果formatName为null或不是插件识别的名称之一。 -
IllegalStateException- 如果无法加载与格式名称对应的类。
-
getAsTree
返回一个表示根据给定元数据格式定义的语法包含在此对象中的元数据树的根的XML DOMNode对象。可查询可用元数据格式的名称使用
getMetadataFormatNames方法。- 参数:
-
formatName- 所需的元数据格式。 - 返回:
-
一个形成树根的XML DOM
Node对象。 - 抛出:
-
IllegalArgumentException- 如果formatName为null或不是getMetadataFormatNames返回的名称之一。 - 参见:
-
mergeTree
根据给定元数据格式定义的语法,从XML DOMNode树中的树更改此IIOMetadata对象的内部状态。仅根据需要更改先前状态以适应给定树中存在的节点。如果树的结构或内容无效,则将抛出IIOInvalidTreeException。由于如何合并树或子树与另一个树的语义完全是特定于格式的,因此插件作者可以以适合格式的任何方式实现此方法,包括简单地用给定树的内容替换所有现有状态。
- 参数:
-
formatName- 所需的元数据格式。 -
root- 一个XML DOMNode对象,形成树的根。 - 抛出:
-
IllegalStateException- 如果此对象是只读的。 -
IllegalArgumentException- 如果formatName为null或不是getMetadataFormatNames返回的名称之一。 -
IllegalArgumentException- 如果root为null。 -
IIOInvalidTreeException- 如果树无法成功使用给定格式的规则解析。 - 参见:
-
getStandardChromaNode
返回一个代表标准javax_imageio_1.0元数据格式的色度信息的IIOMetadataNode,如果没有此类信息可用,则返回null。此方法旨在由实用程序例程getStandardTree调用。默认实现返回
null。子类应重写此方法以生成适当的子树,如果希望支持标准元数据格式。
- 返回:
-
一个
IIOMetadataNode,或null。 - 参见:
-
getStandardCompressionNode
返回一个代表标准javax_imageio_1.0元数据格式的压缩信息的IIOMetadataNode,如果没有此类信息可用,则返回null。此方法旨在由实用程序例程getStandardTree调用。默认实现返回
null。子类应重写此方法以生成适当的子树,如果希望支持标准元数据格式。
- 返回:
-
一个
IIOMetadataNode,或null。 - 参见:
-
getStandardDataNode
返回一个代表标准javax_imageio_1.0元数据格式的数据格式信息的IIOMetadataNode,如果没有此类信息可用,则返回null。此方法旨在由实用程序例程getStandardTree调用。默认实现返回
null。子类应重写此方法以生成适当的子树,如果希望支持标准元数据格式。
- 返回:
-
一个
IIOMetadataNode,或null。 - 参见:
-
getStandardDimensionNode
返回一个代表标准javax_imageio_1.0元数据格式的尺寸信息的IIOMetadataNode,如果没有此类信息可用,则返回null。此方法旨在由实用程序例程getStandardTree调用。默认实现返回
null。子类应重写此方法以生成适当的子树,如果希望支持标准元数据格式。
- 返回:
-
一个
IIOMetadataNode,或null。 - 参见:
-
getStandardDocumentNode
返回一个代表标准javax_imageio_1.0元数据格式的文档信息的IIOMetadataNode,如果没有此类信息可用,则返回null。此方法旨在由实用程序例程getStandardTree调用。默认实现返回
null。子类应重写此方法以生成适当的子树,如果希望支持标准元数据格式。
- 返回:
-
一个
IIOMetadataNode,或null。 - 参见:
-
getStandardTextNode
返回一个代表标准javax_imageio_1.0元数据格式的文本信息的IIOMetadataNode,如果没有此类信息可用,则返回null。此方法旨在由实用程序例程getStandardTree调用。默认实现返回
null。子类应重写此方法以生成适当的子树,如果希望支持标准元数据格式。
- 返回:
-
一个
IIOMetadataNode,或null。 - 参见:
-
getStandardTileNode
返回一个代表标准javax_imageio_1.0元数据格式的平铺信息的IIOMetadataNode,如果没有此类信息可用,则返回null。此方法旨在由实用程序例程getStandardTree调用。默认实现返回
null。子类应重写此方法以生成适当的子树,如果希望支持标准元数据格式。
- 返回:
-
一个
IIOMetadataNode,或null。 - 参见:
-
getStandardTransparencyNode
返回一个代表标准javax_imageio_1.0元数据格式的透明度信息的IIOMetadataNode,如果没有此类信息可用,则返回null。此方法旨在由实用程序例程getStandardTree调用。默认实现返回
null。子类应重写此方法以生成适当的子树,如果希望支持标准元数据格式。
- 返回:
-
一个
IIOMetadataNode,或null。
-
getStandardTree
一个实用方法,返回一个IIOMetadataNode树,表示根据标准javax_imageio_1.0元数据格式的约定包含在此对象中的元数据。此方法调用各种
getStandard*Node方法,以提供根节点的子节点根的每个子树。如果其中任何方法返回null,则相应的子树将被省略。如果它们全部返回null,则将返回由单个根节点组成的树。- 返回:
-
一个
IIOMetadataNode,表示javax_imageio_1.0格式中元数据树的根。 - 参见:
-
setFromTree
从一个由给定元数据格式定义语法的XML DOMNode树中设置此IIOMetadata对象的内部状态。之前的状态将被丢弃。如果树的结构或内容无效,将抛出IIOInvalidTreeException。默认实现调用
reset,然后调用mergeTree(formatName, root)。- 参数:
-
formatName- 所需的元数据格式。 -
root- 一个XML DOMNode对象,形成树的根。 - 抛出:
-
IllegalStateException- 如果此对象是只读的。 -
IllegalArgumentException- 如果formatName为null或不是getMetadataFormatNames返回的名称之一。 -
IllegalArgumentException- 如果root为null。 -
IIOInvalidTreeException- 如果树无法成功使用给定格式的规则解析。 - 参见:
-
reset
public abstract void reset()重置此对象中存储的所有数据为默认值,通常是此对象在构造后立即处于的状态,尽管确切的语义是特定于插件的。请注意,有许多可能的默认值,取决于对象的创建方式。- 抛出:
-
IllegalStateException- 如果此对象是只读的。 - 参见:
-
setController
设置IIOMetadata对象在调用activateController方法时用于提供设置的IIOMetadataController,覆盖任何默认控制器。如果参数为null,则不会使用任何控制器,包括任何默认控制器。要恢复默认设置,请使用setController(getDefaultController())。默认实现将
controller实例变量设置为提供的值。- 参数:
-
controller- 适当的IIOMetadataController,或null。 - 参见:
-
getController
返回当前安装的IIOMetadataController。如果有默认控制器,则可能是默认控制器,null,或者是最近一次调用setController的参数。默认实现返回
controller实例变量的值。- 返回:
-
当前安装的
IIOMetadataController,或null。 - 参见:
-
getDefaultController
返回默认的IIOMetadataController,如果有的话,而不管当前安装的控制器是什么。如果没有默认控制器,则返回null。默认实现返回
defaultController实例变量的值。- 返回:
-
默认的
IIOMetadataController,或null。 - 参见:
-
hasController
public boolean hasController()如果为此IIOMetadata对象安装了控制器,则返回true。默认实现在
getController方法返回非null值时返回true。- 返回:
-
如果安装了控制器,则返回
true。 - 参见:
-
activateController
public boolean activateController()激活此IIOMetadata对象的安装的IIOMetadataController,并返回结果值。当此方法返回true时,此IIOMetadata对象的所有值将准备好进行下一次写操作。如果返回false,则此对象中的任何设置都不会被更改(即,用户取消了操作)。通常,控制器将是为特定插件的
IIOMetadata子类提供用户界面的GUI。但是,控制器不一定是GUI。默认实现调用
getController,如果hasController返回true,则调用返回对象上的activate。- 返回:
-
如果控制器正常完成,则返回
true。 - 抛出:
-
IllegalStateException- 如果当前没有安装控制器。 - 参见:
-