When reading an image, its per-stream and per-image metadata is made
available as an
IIOMetadata object. The internals of this object are
specific to the plug-in that created it. Its contents may be accessed in the
form of an XML
Document, which is implemented as a tree of
When writing an image, its metadata may be set by defining or modifying an
IIOMetadata object. Such an object may be obtained from an
ImageTranscoder (from the
javax.imageio package). Once such an object has been obtained, its
contents may be set of modified via a
Document consisting of
IIOMetadataNodes. The document format may optionally be described
The format of the metadata contained in the XML
identified by a string which appears as the root node of the tree of
IIOMetadataNode objects. This string contains a version number, e.g.
"javax_imageio_jpeg_image_1.0". Readers and writers may support multiple
versions of the same basic format and the Image I/O API has methods that
allow specifying which version to use by passing the string to the
method/constructor used to obtain an
IIOMetadata object. In some
cases, a more recent version may not be strictly compatible with a program
written expecting an older version (for an example, see the Native Metadata
Format section of the JPEG Metadata Usage Notes below).
Plug-ins may choose to support a standard (plug-in neutral) format . This format does not provide lossless encoding of metadata, but allows a portion of the metadata to be accessed in a generic manner.
Each of the standard plug-ins supports a so-called "native" metadata format, which encodes its metadata losslessly:
An interface to be implemented by objects that can determine the settings of an
An object describing the structure of metadata documents returned from
An abstract class to be extended by objects that represent metadata (non-image data) associated with images and streams.
A concrete class providing a reusable implementation of the
A class representing a node in a meta-data tree, which implements the
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, 2017, Oracle and/or its affiliates. 500 Oracle Parkway
Redwood Shores, CA 94065 USA. All rights reserved.