- java.lang.Object
-
- javax.imageio.metadata.IIOMetadata
-
public abstract class IIOMetadata extends Object
由与图像和流相关联的元数据(非图像数据)的对象扩展的抽象类。 插件表示使用不透明的插件特定对象的元数据。 然而,这些对象提供了访问其内部信息的能力,作为支持XML DOM接口的IIOMetadataNode对象以及用于存储非文本数据和检索有关法律数据值的信息的附加接口。 这种树的格式依赖于插件,但插件可能选择支持下述插件中性格式。 单个插件可以支持多个元数据格式,其名称可以通过调用getMetadataFormatNames来确定。 该插件还可以支持被称为“本地”格式的单一特殊格式,其被设计为无损地对其元数据进行编码。 这种格式通常将专门设计为使用特定的文件格式,以便可以以相同的格式加载和保存图像,而不会丢失元数据,但对于不同的图像在ImageReader和ImageWriter之间传输元数据可能不太有用格式。 要像图像文件格式一样无损地转换两种本机格式,必须使用ImageTranscoder对象。- 另请参见:
-
ImageReader.getImageMetadata(int),ImageReader.getStreamMetadata(),ImageReader.readAll(int, javax.imageio.ImageReadParam),ImageWriter.getDefaultStreamMetadata(javax.imageio.ImageWriteParam),ImageWriter.getDefaultImageMetadata(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam),ImageWriter.write(javax.imageio.metadata.IIOMetadata, javax.imageio.IIOImage, javax.imageio.ImageWriteParam),ImageWriter.convertImageMetadata(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam),ImageWriter.convertStreamMetadata(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageWriteParam),IIOImage,ImageTranscoder
-
-
Field Summary
Fields Modifier and Type Field 描述 protected IIOMetadataControllercontroller该IIOMetadataController将用于提供此设置IIOMetadata对象时activateController方法被调用。protected IIOMetadataControllerdefaultController一个IIOMetadataController被建议用作控制器此IIOMetadata对象。protected String[]extraMetadataFormatClassNames实现IIOMetadataFormat的类的名称数组,并表示此插件支持的标准和本地格式的元数据格式,初始化为null并通过构造函数进行设置。protected String[]extraMetadataFormatNames该插件支持的格式数组,不包括标准格式和原生格式,初始化为null并通过构造函数进行设置。protected StringnativeMetadataFormatClassName实现IIOMetadataFormat并表示原生元数据格式的类的名称,初始化为null并通过构造函数设置。protected StringnativeMetadataFormatName该对象的本机元数据格式的名称,初始化为null并通过构造函数进行设置。protected booleanstandardFormatSupported一个布尔值,指示具体子类是否支持通过构造函数设置的标准元数据格式。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedIIOMetadata()构造一个空的IIOMetadata对象。protectedIIOMetadata(boolean standardMetadataFormatSupported, String nativeMetadataFormatName, String nativeMetadataFormatClassName, String[] extraMetadataFormatNames, String[] extraMetadataFormatClassNames)构造具有给定格式名称和格式类名的IIOMetadata对象,以及指示是否支持标准格式的布尔值。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 booleanactivateController()激活此IIOMetadata对象的已安装的IIOMetadataController,并返回结果值。abstract NodegetAsTree(String formatName)根据给定元数据格式定义的约定,返回一个XML DOMNode对象,该对象表示该对象中包含的元数据树的根。IIOMetadataControllergetController()返回当前安装的IIOMetadataController。IIOMetadataControllergetDefaultController()返回默认的IIOMetadataController,如果有一个,不管当前安装的控制器。String[]getExtraMetadataFormatNames()返回的数组String含的附加的元数据格式,比天然和标准格式,此插件中的识别名字小号getAsTree,setFromTree,和mergeTree方法。IIOMetadataFormatgetMetadataFormat(String formatName)返回一个IIOMetadataFormat对象描述给定的元数据格式,或null如果没有可用的描述。String[]getMetadataFormatNames()返回数组String包含的所有元数据格式的名称,包括本地和标准格式,通过此插件的认为科学getAsTree,setFromTree,并mergeTree方法。StringgetNativeMetadataFormatName()返回此插件的“本机”元数据格式的名称,通常允许以该插件处理的格式存储的元数据进行无损编码和传输。protected IIOMetadataNodegetStandardChromaNode()返回IIOMetadataNode表示标准的色度信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。protected IIOMetadataNodegetStandardCompressionNode()返回IIOMetadataNode表示标准的压缩信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。protected IIOMetadataNodegetStandardDataNode()返回IIOMetadataNode表示标准的数据格式信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。protected IIOMetadataNodegetStandardDimensionNode()返回IIOMetadataNode表示标准的尺寸信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。protected IIOMetadataNodegetStandardDocumentNode()返回IIOMetadataNode表示标准的文档信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。protected IIOMetadataNodegetStandardTextNode()返回IIOMetadataNode表示标准的文字信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。protected IIOMetadataNodegetStandardTileNode()返回IIOMetadataNode表示标准的平铺信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。protected IIOMetadataNodegetStandardTransparencyNode()返回IIOMetadataNode表示标准的透明度信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。protected IIOMetadataNodegetStandardTree()根据标准javax_imageio_1.0元数据格式的约定,返回表示包含在该对象内的元数据的一个IIOMetadataNode的树的实用方法。booleanhasController()如果为此IIOMetadata对象安装了控制器,则返回true。abstract booleanisReadOnly()返回true如果此对象不支持mergeTree,setFromTree,并reset方法。booleanisStandardMetadataFormatSupported()返回true如果标准元数据格式是由支持getMetadataFormat,getAsTree,setFromTree,并mergeTree。abstract voidmergeTree(String formatName, Node root)从XML DOMNode的树中更改此IIOMetadata对象的内部状态,其语法由给定的元数据格式定义。abstract voidreset()将此对象中存储的所有数据重置为默认值,通常是在构建后立即处于该对象的状态,尽管精确的语义是插件特定的。voidsetController(IIOMetadataController controller)设置IIOMetadataController被用来提供用于此设置IIOMetadata对象时activateController方法被调用时,重写所有默认控制器。voidsetFromTree(String formatName, Node root)从XML DOMNode的树中设置此IIOMetadata对象的内部状态,其语法由给定的元数据格式定义。
-
-
-
字段详细信息
-
standardFormatSupported
protected boolean standardFormatSupported
一个布尔值,指示具体子类是否支持通过构造函数设置的标准元数据格式。
-
nativeMetadataFormatName
protected String nativeMetadataFormatName
此对象的本机元数据格式的名称,初始化为null并通过构造函数设置。
-
nativeMetadataFormatClassName
protected String nativeMetadataFormatClassName
实现IIOMetadataFormat并表示原生元数据格式的类的名称,初始化为null并通过构造函数设置。
-
extraMetadataFormatNames
protected String[] extraMetadataFormatNames
该插件支持的格式名称不同于标准和本机格式,初始化为null并通过构造函数进行设置。
-
extraMetadataFormatClassNames
protected String[] extraMetadataFormatClassNames
实现IIOMetadataFormat的类的名称数组,并表示该插件支持的标准和本机格式之外的元数据格式,初始化为null并通过构造函数进行设置。
-
defaultController
protected IIOMetadataController defaultController
一个IIOMetadataController被建议用作控制器此IIOMetadata对象。 它可以通过getDefaultController检索。 要安装默认控制器,请致电setController(getDefaultController())。 这个实例变量应该由子类设置,它们选择提供自己的默认控制器(通常是GUI)来设置参数。
-
controller
protected IIOMetadataController controller
该IIOMetadataController将用于提供此设置IIOMetadata对象时activateController方法被调用。 该值覆盖任何默认控制器,即使是null。
-
-
构造方法详细信息
-
IIOMetadata
protected IIOMetadata()
构造一个空的IIOMetadata对象。 子类负责为所有受保护的实例变量提供值,这些变量将允许任何未被覆盖的方法的默认实现来满足他们的合同。 例如,extraMetadataFormatNames不应该有0。
-
IIOMetadata
protected IIOMetadata(boolean standardMetadataFormatSupported, String nativeMetadataFormatName, String nativeMetadataFormatClassName, String[] extraMetadataFormatNames, String[] extraMetadataFormatClassNames)构造具有给定格式名称和格式类名称的IIOMetadata对象,以及指示是否支持标准格式的布尔值。此构造函数不会尝试检查类名的有效性。 无效的类名称可能会在以后的调用中产生异常
getMetadataFormat。- 参数
-
standardMetadataFormatSupported-true如果此对象可以使用标准元数据格式返回或接受DOM树。 -
nativeMetadataFormatName- 原生元数据格式的名称,如String,如果没有本机格式,null。 -
nativeMetadataFormatClassName- 本机元数据格式的类的名称,如果没有本机格式,null。 -
extraMetadataFormatNames- 表示此对象支持的其他格式的Strings的数组,如果没有,null。 -
extraMetadataFormatClassNames-的阵列String以及指示由该对象,或支持的其他任何格式的类名称null如果有没有。 - 异常
-
IllegalArgumentException- 如果extraMetadataFormatNames长度为0。 -
IllegalArgumentException- 如果extraMetadataFormatNames和extraMetadataFormatClassNames既不都是null,也不是相同的长度。
-
-
方法详细信息
-
isStandardMetadataFormatSupported
public boolean isStandardMetadataFormatSupported()
返回true如果标准元数据格式是由支持getMetadataFormat,getAsTree,setFromTree,并mergeTree。默认实现返回值为
standardFormatSupported实例变量。- 结果
-
如果支持标准元数据格式,则为
true。 - 另请参见:
-
getAsTree(java.lang.String),setFromTree(java.lang.String, org.w3c.dom.Node),mergeTree(java.lang.String, org.w3c.dom.Node),getMetadataFormat(java.lang.String)
-
isReadOnly
public abstract boolean isReadOnly()
返回true如果此对象不支持mergeTree,setFromTree,并reset方法。- 结果
-
如果这个
IIOMetadata对象无法修改,IIOMetadatatrue。
-
getNativeMetadataFormatName
public String getNativeMetadataFormatName()
返回此插件的“本机”元数据格式的名称,通常允许以该插件处理的格式存储的元数据进行无损编码和传输。 如果不支持这样的格式,将返回null。“本机”元数据格式的结构和内容由创建此
IIOMetadata对象的插件定义。 简单格式的插件通常会为根创建一个虚拟节点,然后创建一系列表示各个标签,块或关键字/值对的子节点。 插件可以选择是否记录其本机格式。默认实现返回值为
nativeMetadataFormatName实例变量。- 结果
-
原生格式的名称,或
null。 - 另请参见:
-
getExtraMetadataFormatNames(),getMetadataFormatNames()
-
getExtraMetadataFormatNames
public String[] getExtraMetadataFormatNames()
返回的数组String含的附加的元数据格式,比天然和标准格式,此插件中的识别名字小号getAsTree,setFromTree,和mergeTree方法。 如果没有这样的附加格式,则返回null。默认实现返回一个
extraMetadataFormatNames实例变量的克隆。- 结果
-
String的长度至少为1的数组,或null。 - 另请参见:
-
getAsTree(java.lang.String),setFromTree(java.lang.String, org.w3c.dom.Node),mergeTree(java.lang.String, org.w3c.dom.Node),getNativeMetadataFormatName(),getMetadataFormatNames()
-
getMetadataFormatNames
public String[] getMetadataFormatNames()
返回数组String包含的所有元数据格式的名称,包括本地和标准格式,通过此插件的认为科学getAsTree,setFromTree,并mergeTree方法。 如果没有这样的格式,则返回null。默认实现调用
getNativeMetadataFormatName,isStandardMetadataFormatSupported,并getExtraMetadataFormatNames并返回合并后的结果。- 结果
-
一个
String的阵列。 - 另请参见:
-
getNativeMetadataFormatName(),isStandardMetadataFormatSupported(),getExtraMetadataFormatNames()
-
getMetadataFormat
public IIOMetadataFormat getMetadataFormat(String formatName)
返回一个IIOMetadataFormat对象描述给定的元数据格式,或null如果没有可用的描述。 提供的名称必须是getMetadataFormatNames返回的其中一个( 即 ,本机格式名称,标准格式名称或由getExtraMetadataFormatNames返回的其中一个)。默认实现根据全局标准元数据格式名称检查名称,如果支持该格式则返回该格式。 否则,它会检查本机格式名称,后跟任何其他格式名称。 如果找到匹配项,它会根据
IIOMetadataFormat从nativeMetadataFormatClassName或extraMetadataFormatClassNames检索IIOMetadataFormat类的名称,并使用其getInstance方法构建该类的实例。- 参数
-
formatName- 所需的元数据格式。 - 结果
-
一个
IIOMetadataFormat对象。 - 异常
-
IllegalArgumentException- 如果formatName是null或不是插件识别的名称之一。 -
IllegalStateException- 如果与格式名称对应的类无法加载。
-
getAsTree
public abstract Node getAsTree(String formatName)
根据给定的元数据格式定义的约定,返回一个XML DOMNode对象,该对象表示该对象中包含的元数据树的根。可以使用
getMetadataFormatNames方法查询可用元数据格式的名称。- 参数
-
formatName- 所需的元数据格式。 - 结果
-
形成树的根的XML DOM
Node对象。 - 异常
-
IllegalArgumentException- 如果formatName是null或不是由getMetadataFormatNames返回的名称getMetadataFormatNames。 - 另请参见:
-
getMetadataFormatNames(),setFromTree(java.lang.String, org.w3c.dom.Node),mergeTree(java.lang.String, org.w3c.dom.Node)
-
mergeTree
public abstract void mergeTree(String formatName, Node root) throws IIOInvalidTreeException
从XML DOMNode的树中更改此IIOMetadata对象的内部状态,其语法由给定的元数据格式定义。 之前的状态仅在必要时被改变以适应给定树中存在的节点。 如果树结构或内容无效,将抛出IIOInvalidTreeException。由于树或子树可能与另一棵树合并的语义完全是格式特定的,插件作者可以以任何最适合格式的方式实现此方法,包括简单地将所有现有状态替换为给定树。
- 参数
-
formatName- 所需的元数据格式。 -
root- 形成树根的XML DOMNode对象。 - 异常
-
IllegalStateException- 如果此对象是只读的。 -
IllegalArgumentException- 如果formatName是null或不是由getMetadataFormatNames返回的名称getMetadataFormatNames。 -
IllegalArgumentException- 如果root是null。 -
IIOInvalidTreeException- 如果无法使用给定格式的规则成功解析树。 - 另请参见:
-
getMetadataFormatNames(),getAsTree(java.lang.String),setFromTree(java.lang.String, org.w3c.dom.Node)
-
getStandardChromaNode
protected IIOMetadataNode getStandardChromaNode()
返回IIOMetadataNode表示标准的色度信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 该方法旨在由公用程序getStandardTree。默认实现返回
null。如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
- 结果
-
一个
IIOMetadataNode,或null。 - 另请参见:
-
getStandardTree()
-
getStandardCompressionNode
protected IIOMetadataNode getStandardCompressionNode()
返回IIOMetadataNode表示标准的压缩信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 该方法意图由实用程序getStandardTree。默认实现返回
null。如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
- 结果
-
一个
IIOMetadataNode,或null。 - 另请参见:
-
getStandardTree()
-
getStandardDataNode
protected IIOMetadataNode getStandardDataNode()
返回IIOMetadataNode表示标准的数据格式信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 该方法旨在由公用程序getStandardTree。默认实现返回
null。如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
- 结果
-
一个
IIOMetadataNode或null。 - 另请参见:
-
getStandardTree()
-
getStandardDimensionNode
protected IIOMetadataNode getStandardDimensionNode()
返回IIOMetadataNode表示标准的尺寸信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 该方法意图由公用程序getStandardTree。默认实现返回
null。如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
- 结果
-
一个
IIOMetadataNode,或null。 - 另请参见:
-
getStandardTree()
-
getStandardDocumentNode
protected IIOMetadataNode getStandardDocumentNode()
返回IIOMetadataNode表示标准的文档信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 该方法旨在由公用程序getStandardTree。默认实现返回
null。如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
- 结果
-
一个
IIOMetadataNode或null。 - 另请参见:
-
getStandardTree()
-
getStandardTextNode
protected IIOMetadataNode getStandardTextNode()
返回IIOMetadataNode表示标准的文字信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 该方法旨在由效用程序getStandardTree。默认实现返回
null。如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
- 结果
-
一个
IIOMetadataNode或null。 - 另请参见:
-
getStandardTree()
-
getStandardTileNode
protected IIOMetadataNode getStandardTileNode()
返回IIOMetadataNode表示标准的平铺信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 该方法旨在由效用程序getStandardTree。默认实现返回
null。如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
- 结果
-
一个
IIOMetadataNode或null。 - 另请参见:
-
getStandardTree()
-
getStandardTransparencyNode
protected IIOMetadataNode getStandardTransparencyNode()
返回IIOMetadataNode表示标准的透明度信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 该方法旨在由实用程序getStandardTree。默认实现返回
null。如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
- 结果
-
一个
IIOMetadataNode,或null。
-
getStandardTree
protected final IIOMetadataNode getStandardTree()
根据标准javax_imageio_1.0元数据格式的约定,返回表示包含在该对象内的元数据的一个IIOMetadataNode的树的实用方法。该方法调用各种
getStandard*Node方法来提供根源于根节点子节点的每个子树。 如果这些方法中的任何一个返回null,相应的子树将被省略。 如果全部返回null,将返回由单个根节点组成的树。- 结果
-
一个
IIOMetadataNode表示javax_imageio_1.0格式的元数据树的根。 - 另请参见:
-
getStandardChromaNode(),getStandardCompressionNode(),getStandardDataNode(),getStandardDimensionNode(),getStandardDocumentNode(),getStandardTextNode(),getStandardTileNode(),getStandardTransparencyNode()
-
setFromTree
public void setFromTree(String formatName, Node root) throws IIOInvalidTreeException
从XML DOMNode的树中设置此IIOMetadata对象的内部状态,其语法由给定的元数据格式定义。 以前的状态被丢弃。 如果树的结构或内容无效,将抛出一个IIOInvalidTreeException。默认实现调用
reset后跟mergeTree(formatName, root)。- 参数
-
formatName- 所需的元数据格式。 -
root- 形成树根的XML DOMNode对象。 - 异常
-
IllegalStateException- 如果此对象是只读的。 -
IllegalArgumentException- 如果formatName是null或不是由getMetadataFormatNames返回的名称getMetadataFormatNames。 -
IllegalArgumentException- 如果root是null。 -
IIOInvalidTreeException- 如果不能使用给定格式的规则成功解析树。 - 另请参见:
-
getMetadataFormatNames(),getAsTree(java.lang.String),mergeTree(java.lang.String, org.w3c.dom.Node)
-
reset
public abstract void reset()
将此对象中存储的所有数据重置为默认值,通常是在构建后立即处于该对象的状态,尽管精确的语义是插件特定的。 请注意,有很多可能的默认值,具体取决于对象的创建方式。
-
setController
public void setController(IIOMetadataController controller)
设置IIOMetadataController被用来提供用于此设置IIOMetadata对象时activateController方法被调用时,重写所有默认控制器。 如果参数为null,则不会使用任何控制器,包括任何默认值。 要恢复默认值,请使用setController(getDefaultController())。默认实现将
controller实例变量设置为提供的值。- 参数
-
controller- 适当的IIOMetadataController或null。 - 另请参见:
-
IIOMetadataController,getController(),getDefaultController(),hasController(),activateController()
-
getController
public IIOMetadataController getController()
返回当前安装的IIOMetadataController。 这可能是默认的,如果有一个,null,或者最近通话的说法setController。默认实现返回
controller实例变量的值。- 结果
-
目前安装的是
IIOMetadataController,或null。 - 另请参见:
-
IIOMetadataController,setController(javax.imageio.metadata.IIOMetadataController),getDefaultController(),hasController(),activateController()
-
getDefaultController
public IIOMetadataController getDefaultController()
返回默认的IIOMetadataController,如果有一个,不管当前安装的控制器。 如果没有默认控制器,则返回null。默认实现返回值为
defaultController实例变量。- 结果
-
默认为
IIOMetadataController,或null。 - 另请参见:
-
IIOMetadataController,setController(IIOMetadataController),getController(),hasController(),activateController()
-
hasController
public boolean hasController()
如果为此IIOMetadata对象安装了控制器,则返回true。如果
getController方法返回非null值,默认实现将返回true。- 结果
-
true如果安装了控制器。 - 另请参见:
-
IIOMetadataController,setController(IIOMetadataController),getController(),getDefaultController(),activateController()
-
activateController
public boolean activateController()
激活此IIOMetadata对象的已安装的IIOMetadataController,并返回结果值。 当此方法返回true,此IIOMetadata对象的所有值将准备好进行下一次写入操作。 如果返回false则此对象中的设置不会受到干扰( 即用户取消了该操作)。通常,控制器将是为特定插件提供
IIOMetadata子类的用户界面的GUI。 控制器不需要GUI。默认实现调用
getController和电话activate对返回的对象,如果hasController回报true。- 结果
-
true如果控制器正常完成。 - 异常
-
IllegalStateException- 如果当前没有安装控制器。 - 另请参见:
-
IIOMetadataController,setController(IIOMetadataController),getController(),getDefaultController(),hasController()
-
-