public abstract class IIOMetadata extends Object
IIOMetadataNode对象的形式访问其内部信息,以及用于存储非文本数据和检索有关法律数据值的信息的附加接口。 
       这种树的格式依赖于插件,但插件可能选择支持下述插件中性格式。 
       一个插件可以支持多个元数据格式,其名称可以通过调用getMetadataFormatNames来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 
       | Modifier and Type | Field and Description | 
|---|---|
| protected IIOMetadataController | controller
              该 
              IIOMetadataController将用于提供此设置IIOMetadata对象时activateController方法被调用。 | 
| protected IIOMetadataController | defaultController
              一个 
              IIOMetadataController用作这个IIOMetadata对象的控制器的IIOMetadata。 | 
| protected String[] | extraMetadataFormatClassNames
              实现 
              IIOMetadataFormat的类的名称数组,并表示该IIOMetadataFormat支持的元数据格式,而不是标准和本地格式,初始化为null并通过null进行设置。 | 
| protected String[] | extraMetadataFormatNames
              该插件支持的格式名称不同于标准和本机格式,初始化为 
              null并通过构造函数设置。 | 
| protected String | nativeMetadataFormatClassName
              实现 
              IIOMetadataFormat并表示原生元数据格式的类的名称,初始化为null并通过构造函数设置。 | 
| protected String | nativeMetadataFormatName
              该对象的本机元数据格式的名称,初始化为 
              null,并通过null进行设置。 | 
| protected boolean | standardFormatSupported
              一个布尔值,指示具体的子类是否支持通过构造函数设置的标准元数据格式。 
             | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | IIOMetadata()
              构造一个空的 
              IIOMetadata对象。 | 
| protected  | IIOMetadata(boolean standardMetadataFormatSupported, String nativeMetadataFormatName, String nativeMetadataFormatClassName, String[] extraMetadataFormatNames, String[] extraMetadataFormatClassNames)
              使用给定的格式名称和格式类名构造一个 
              IIOMetadata对象,以及一个指示是否支持标准格式的布尔值。 | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | activateController()
              激活此 
              IIOMetadata对象的安装IIOMetadataController,并返回结果值。 | 
| abstract Node | getAsTree(String formatName)
              根据给定的元数据格式定义的约定,返回一个XML DOM 
              Node对象,该对象表示包含在该对象中的元数据树的根。 | 
| IIOMetadataController | getController()
              返回 
              IIOMetadataController安装的IIOMetadataController。 | 
| IIOMetadataController | getDefaultController()
              返回默认的 
              IIOMetadataController,如果有一个,不管当前安装的控制器。 | 
| String[] | getExtraMetadataFormatNames()
              返回的数组 
              String含的附加的元数据格式,比天然和标准格式,此插件中的识别名字小号getAsTree,setFromTree和mergeTree方法。 | 
| IIOMetadataFormat | getMetadataFormat(String formatName)
              返回一个 
              IIOMetadataFormat对象描述给定的元数据格式,或null如果没有可用的描述。 | 
| String[] | getMetadataFormatNames()
              返回数组 
              String包含的所有元数据格式的名称,包括本地和标准格式,通过此插件的认为科学getAsTree,setFromTree和mergeTree方法。 | 
| String | getNativeMetadataFormatName()
              返回此插件的“本机”元数据格式的名称,通常允许以该插件处理的格式存储的元数据进行无损编码和传输。 
             | 
| protected IIOMetadataNode | getStandardChromaNode()
              返回一个 
              IIOMetadataNode表示标准的色度信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 | 
| protected IIOMetadataNode | getStandardCompressionNode()
              返回一个 
              IIOMetadataNode表示标准的压缩信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 | 
| protected IIOMetadataNode | getStandardDataNode()
              返回一个 
              IIOMetadataNode表示标准的数据格式信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 | 
| protected IIOMetadataNode | getStandardDimensionNode()
              返回一个 
              IIOMetadataNode表示标准的尺寸信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 | 
| protected IIOMetadataNode | getStandardDocumentNode()
              返回一个 
              IIOMetadataNode表示标准的文档信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 | 
| protected IIOMetadataNode | getStandardTextNode()
              返回一个 
              IIOMetadataNode表示标准的文字信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 | 
| protected IIOMetadataNode | getStandardTileNode()
              返回一个 
              IIOMetadataNode表示标准的平铺信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 | 
| protected IIOMetadataNode | getStandardTransparencyNode()
              返回一个 
              IIOMetadataNode表示标准的透明度信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 | 
| protected IIOMetadataNode | getStandardTree()
              根据标准 
              javax_imageio_1.0元数据格式的约定,返回表示此对象中包含的元数据的IIOMetadataNodes的树的实用方法。 | 
| boolean | hasController()
              如果为此 
              IIOMetadata对象安装了控制器,则返回true。 | 
| abstract boolean | isReadOnly()
              返回 
              true如果此对象不支持mergeTree,setFromTree和reset方法。 | 
| boolean | isStandardMetadataFormatSupported()
              返回 
              true如果标准元数据格式是由支持getMetadataFormat,getAsTree,setFromTree和mergeTree。 | 
| abstract void | mergeTree(String formatName, Node root)
              从XML DOM 
              Node的树中更改此IIOMetadata对象的内部状态,其语法由给定的元数据格式定义。 | 
| abstract void | reset()
              将此对象中存储的所有数据重置为默认值,通常是在构建后立即处于该对象的状态,尽管精确的语义是插件特定的。 
             | 
| void | setController(IIOMetadataController controller)
              设置 
              IIOMetadataController被用来提供用于此设置IIOMetadata对象时activateController方法被调用时,重写所有默认控制器。 | 
| void | setFromTree(String formatName, Node root)
              从XML DOM 
              Node的树中设置此IIOMetadata对象的内部状态,其语法由给定的元数据格式定义。 | 
protected boolean standardFormatSupported
protected String nativeMetadataFormatName
null ,并通过 
           null进行设置。 
          protected String nativeMetadataFormatClassName
IIOMetadataFormat并表示本机元数据格式的类的名称,初始化为 
           null并通过构造函数设置。 
          protected String[] extraMetadataFormatNames
null ,并通过 
           null进行设置。 
          protected String[] extraMetadataFormatClassNames
IIOMetadataFormat的类的名称数组,并表示该 
           IIOMetadataFormat支持的元数据格式(标准和本机格式),初始化为 
           null ,并通过 
           null进行设置。 
          protected IIOMetadataController defaultController
IIOMetadataController被建议用作控制器此IIOMetadata对象。 
           它可以通过getDefaultController 。 
           要安装默认控制器,请致电setController(getDefaultController()) 。 
           这个实例变量应该由子类设置,它们选择提供自己的默认控制器(通常是GUI)来设置参数。 
          protected IIOMetadataController controller
IIOMetadataController将用于提供此设置IIOMetadata对象时activateController方法被调用。 
           该值覆盖任何默认控制器,即使是null 。 
          protected IIOMetadata()
IIOMetadata对象。 
           子类负责为所有受保护的实例变量提供值,这些变量将允许任何未被覆盖的方法的默认实现来满足他们的合同。 
           例如, extraMetadataFormatNames不应该有0。 
          protected IIOMetadata(boolean standardMetadataFormatSupported,
                      String nativeMetadataFormatName,
                      String nativeMetadataFormatClassName,
                      String[] extraMetadataFormatNames,
                      String[] extraMetadataFormatClassNames) 
          IIOMetadata对象,以及指示是否支持标准格式的布尔。 
            此构造函数不会尝试检查类名的有效性。 在getMetadataFormat的后续调用中,无效的类名可能会导致getMetadataFormat 。 
standardMetadataFormatSupported - 
            true如果此对象可以使用标准元数据格式返回或接受DOM树。 
           nativeMetadataFormatName - 原生元数据格式的名称,如 
            String ,或 
            null如果没有本机格式。 
           nativeMetadataFormatClassName - 本机元数据格式的类的名称,如果没有本机格式, 
            null 。 
           extraMetadataFormatNames -的阵列 
            String以及指示由该对象,或支持其他格式 
            null如果有没有。 
           extraMetadataFormatClassNames - 一个 
            extraMetadataFormatClassNames的数组, 
            String此对象支持的任何其他格式的类名,如果没有 
            null 。 
           IllegalArgumentException - 如果 
            extraMetadataFormatNames的长度为0。 
           IllegalArgumentException - 如果 
            extraMetadataFormatNames和 
            extraMetadataFormatClassNames都不是 
            null ,也不是相同的长度。 
           public boolean isStandardMetadataFormatSupported()
true如果标准元数据格式是由支持getMetadataFormat , getAsTree , setFromTree和mergeTree 。 
            默认实现返回standardFormatSupported实例变量的值。 
public abstract boolean isReadOnly()
true如果此对象不支持 
           mergeTree , 
           setFromTree和 
           reset方法。 
          IIOMetadata对象无法修改,则为true。 
           public String getNativeMetadataFormatName()
null 。 
            “本机”元数据格式的结构和内容由创建此IIOMetadata对象的插件定义。 简单格式的插件通常会为根创建一个虚拟节点,然后创建一系列表示各个标签,块或关键字/值对的子节点。 插件可以选择是否记录其本机格式。 
 默认实现返回nativeMetadataFormatName实例变量的值。 
null 。 
           getExtraMetadataFormatNames() , 
            getMetadataFormatNames() 
           public String[] getExtraMetadataFormatNames()
String的数组,其中包含了该插件的getAsTree和mergeTree方法setFromTree其他元数据格式的名称,而不是本机和标准格式。 
           如果没有这样的附加格式,则返回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() 
           public String[] getMetadataFormatNames()
String包含的所有元数据格式的名称,包括本地和标准格式,通过此插件的认为科学getAsTree , setFromTree和mergeTree方法。 
           如果没有这样的格式,则返回null 。 
            默认实现调用getNativeMetadataFormatName , isStandardMetadataFormatSupported和getExtraMetadataFormatNames并返回合并后的结果。 
String的阵列。 
           getNativeMetadataFormatName() , 
            isStandardMetadataFormatSupported() , 
            getExtraMetadataFormatNames() 
           public IIOMetadataFormat getMetadataFormat(String formatName)
IIOMetadataFormat对象描述给定的元数据格式,或null如果没有可用的描述。 
           提供的名称必须是由getMetadataFormatNames返回的getMetadataFormatNames ( 即 ,本机格式名称,标准格式名称或由getExtraMetadataFormatNames返回的那些getExtraMetadataFormatNames )。 
            默认实现根据全局标准元数据格式名称检查名称,如果支持该格式则返回该格式。 否则,它会检查本机格式名称,后跟任何其他格式名称。 如果找到匹配项,则根据IIOMetadataFormat从nativeMetadataFormatClassName或extraMetadataFormatClassNames IIOMetadataFormat类的名称,并使用其getInstance方法构建该类的实例。 
formatName - 所需的元数据格式。 
           IIOMetadataFormat对象。 
           IllegalArgumentException - 如果 
            formatName是 
            null或不是插件识别的名称之一。 
           IllegalStateException - 如果与格式名称对应的类无法加载。 
           public abstract Node getAsTree(String formatName)
Node对象,该对象表示该对象中包含的元数据树的根。 
            可以使用getMetadataFormatNames方法查询可用元数据格式的名称。 
formatName - 所需的元数据格式。 
           Node对象。 
           IllegalArgumentException - 如果 
            formatName是 
            null或不是由 
            getMetadataFormatNames返回的名称 
            getMetadataFormatNames 。 
           getMetadataFormatNames() , 
            setFromTree(java.lang.String, org.w3c.dom.Node) , 
            mergeTree(java.lang.String, org.w3c.dom.Node) 
           public abstract void mergeTree(String formatName, Node root) throws IIOInvalidTreeException
Node的树中更改此IIOMetadata对象的内部状态,其语法由给定的元数据格式定义。 
           之前的状态仅在必要时被修改以适应给定树中存在的节点。 
           如果树结构或内容无效,将抛出IIOInvalidTreeException 。 
           由于树或子树可能与另一棵树合并的语义完全是格式特定的,插件作者可以以任何最适合格式的方式实现此方法,包括简单地将所有现有状态替换为给定树。
formatName - 所需的元数据格式。 
           root - 形成树根的XML DOM 
            Node对象。 
           IllegalStateException - 如果此对象是只读的。 
           IllegalArgumentException - 如果 
            formatName是 
            null或不是由 
            getMetadataFormatNames返回的名称 
            getMetadataFormatNames 。 
           IllegalArgumentException - 如果 
            root是 
            null 。 
           IIOInvalidTreeException - 如果无法使用给定格式的规则成功解析树。 
           getMetadataFormatNames() , 
            getAsTree(java.lang.String) , 
            setFromTree(java.lang.String, org.w3c.dom.Node) 
           protected IIOMetadataNode getStandardChromaNode()
IIOMetadataNode表示标准的色度信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 
           该方法旨在由公用程序getStandardTree 。 
            默认实现返回null 。 
如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
IIOMetadataNode或 
            null 。 
           getStandardTree() 
           protected IIOMetadataNode getStandardCompressionNode()
IIOMetadataNode表示标准的压缩信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 
           该方法旨在由实用程序getStandardTree 。 
            默认实现返回null 。 
如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
IIOMetadataNode或 
            null 。 
           getStandardTree() 
           protected IIOMetadataNode getStandardDataNode()
IIOMetadataNode表示标准的数据格式信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 
           该方法旨在由实用程序getStandardTree 。 
            默认实现返回null 。 
如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
IIOMetadataNode或 
            null 。 
           getStandardTree() 
           protected IIOMetadataNode getStandardDimensionNode()
IIOMetadataNode表示标准的尺寸信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 
           该方法旨在由实用程序getStandardTree 。 
            默认实现返回null 。 
如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
IIOMetadataNode或 
            null 。 
           getStandardTree() 
           protected IIOMetadataNode getStandardDocumentNode()
IIOMetadataNode表示标准的文档信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 
           该方法旨在由实用程序getStandardTree 。 
            默认实现返回null 。 
如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
IIOMetadataNode或 
            null 。 
           getStandardTree() 
           protected IIOMetadataNode getStandardTextNode()
IIOMetadataNode表示标准的文字信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 
           该方法旨在由实用程序getStandardTree 。 
            默认实现返回null 。 
如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
IIOMetadataNode或 
            null 。 
           getStandardTree() 
           protected IIOMetadataNode getStandardTileNode()
IIOMetadataNode表示标准的平铺信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 
           该方法旨在由实用程序getStandardTree 。 
            默认实现返回null 。 
如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
IIOMetadataNode或 
            null 。 
           getStandardTree() 
           protected IIOMetadataNode getStandardTransparencyNode()
IIOMetadataNode表示标准的透明度信息javax_imageio_1.0元数据格式,或null如果没有这样的信息是可用的。 
           该方法旨在由实用程序getStandardTree 。 
            默认实现返回null 。 
如果子类希望支持标准元数据格式,则子类应该重写此方法以生成适当的子树。
IIOMetadataNode或 
            null 。 
           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() 
           public void setFromTree(String formatName, Node root) throws IIOInvalidTreeException
Node的树中设置此IIOMetadata对象的内部状态,其语法由给定的元数据格式定义。 
           以前的状态被丢弃。 
           如果树的结构或内容无效,则会抛出IIOInvalidTreeException 。 
            默认实现调用reset后跟mergeTree(formatName, root) 。 
formatName - 所需的元数据格式。 
           root - 形成树根的XML DOM 
            Node对象。 
           IllegalStateException - 如果此对象是只读的。 
           IllegalArgumentException - 如果 
            formatName是 
            null或不是由 
            getMetadataFormatNames返回的名称 
            getMetadataFormatNames 。 
           IllegalArgumentException - 如果 
            root是 
            null 。 
           IIOInvalidTreeException - 如果无法使用给定格式的规则成功解析树。 
           getMetadataFormatNames() , 
            getAsTree(java.lang.String) , 
            mergeTree(java.lang.String, org.w3c.dom.Node) 
           public abstract void reset()
public void setController(IIOMetadataController controller)
IIOMetadataController用于在调用activateController方法时为该IIOMetadata对象提供设置,覆盖任何默认控制器。 
           如果参数为null ,则不会使用任何控制器,包括任何默认值。 
           要恢复默认值,请使用setController(getDefaultController()) 。 
            默认实现将controller实例变量设置为提供的值。 
controller - 适当的 
            IIOMetadataController或 
            null 。 
           IIOMetadataController , getController() , getDefaultController() , hasController() , activateController() 
           public IIOMetadataController getController()
IIOMetadataController安装的IIOMetadataController。 
           如果有一个null或最近调用setController的参数,这可以是默认值。 
            默认实现返回controller实例变量的值。 
IIOMetadataController ,或 
            null 。 
           IIOMetadataController , setController(javax.imageio.metadata.IIOMetadataController) , getDefaultController() , hasController() , activateController() 
           public IIOMetadataController getDefaultController()
IIOMetadataController ,如果有一个,不管当前安装的控制器。 
           如果没有默认控制器,返回null 。 
            默认实现返回defaultController实例变量的值。 
IIOMetadataController ,或 
            null 。 
           IIOMetadataController , setController(IIOMetadataController) , getController() , hasController() , activateController() 
           public boolean hasController()
IIOMetadata对象安装了控制器,则返回true 。 
            如果getController方法返回非null值,则默认实现将返回true 。 
true如果安装了控制器。 
           IIOMetadataController , setController(IIOMetadataController) , getController() , getDefaultController() , activateController() 
           public boolean activateController()
IIOMetadata对象激活IIOMetadataController的IIOMetadata ,并返回结果值。 
           当此方法返回true时,此IIOMetadata对象的所有值将准备好进行下一次写入操作。 
           如果返回false ,则此对象中的设置不会受到干扰( 即用户取消操作)。 
            通常,控制器将提供的一个子类的用户界面的GUI IIOMetadata用于特定插件。 控制器不需要GUI。 
 默认实现调用getController和电话activate返回的对象上,如果hasController回报true 。 
true如果控制器正常完成。 
           IllegalStateException - 如果当前没有安装控制器。 
           IIOMetadataController , setController(IIOMetadataController) , getController() , getDefaultController() , hasController() 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.