A package of the Java Image I/O API dealing with reading and writing
metadata.
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 IIOMetadataNode objects.
When writing an image, its metadata may be set by defining or
modifying an IIOMetadata object. Such an object may be
obtained from an ImageWriter or
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 using an
IIOMetadataFormat object.
The format of the metadata contained in the XML Document
is 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:
When reading an image, its per-stream and per-image metadata is made available as an
IIOMetadataobject. The internals of this object are specific to the plug-in that created it. Its contents may be accessed in the form of an XMLDocument, which is implemented as a tree ofIIOMetadataNodeobjects.When writing an image, its metadata may be set by defining or modifying an
IIOMetadataobject. Such an object may be obtained from anImageWriterorImageTranscoder(from thejavax.imageiopackage). Once such an object has been obtained, its contents may be set of modified via aDocumentconsisting ofIIOMetadataNodes. The document format may optionally be described using anIIOMetadataFormatobject.The format of the metadata contained in the XML
Documentis identified by a string which appears as the root node of the tree ofIIOMetadataNodeobjects. 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 anIIOMetadataobject. 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: