package.html revision 0
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<html>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<head>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<!--
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteCopyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteDO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteThis code is free software; you can redistribute it and/or modify it
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteunder the terms of the GNU General Public License version 2 only, as
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortepublished by the Free Software Foundation. Sun designates this
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteparticular file as subject to the "Classpath" exception as provided
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteby Sun in the LICENSE file that accompanied this code.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteThis code is distributed in the hope that it will be useful, but WITHOUT
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteversion 2 for more details (a copy is included in the LICENSE file that
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteaccompanied this code).
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteYou should have received a copy of the GNU General Public License version
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte2 along with this work; if not, write to the Free Software Foundation,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteInc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn FortePlease contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteCA 95054 USA or visit www.sun.com if you need additional information or
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortehave any questions.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte-->
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte</head>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<body bgcolor="white">
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteThe main package of the Java Image I/O API.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<p>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteMany common image I/O operations may be performed using the static
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortemethods of the <code>ImageIO</code> class.
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<p>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteThis package contains the basic classes and interfaces for describing
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Fortethe contents of image files, including metadata and thumbnails
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte(<code>IIOImage</code>); for controlling the image reading process
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte(<code>ImageReader</code>, <code>ImageReadParam</code>, and
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<code>ImageTypeSpecifier</code>) and image writing process
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte(<code>ImageWriter</code> and <code>ImageWriteParam</code>); for
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteperforming transcoding between formats (<code>ImageTranscoder</code>),
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteand for reporting errors (<code>IIOException</code>).
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<p>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn ForteAll implementations of javax.imageio provide the following standard
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forteimage format plug-ins:
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte</p>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<div>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<table border=1 align='center' cellpadding=5>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<tr>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte <th>&nbsp;</th> <th>Reading</th> <th>Writing</th>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte <th>Notes</th> <th>Metadata</th>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte</tr>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<!-- JPEG plugin -->
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<tr>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte <td> <a href="http://www.jpeg.org">JPEG</a></td>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte <td align='center'>yes</td>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte <td align='center'>yes</td>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte <td align='center'>none</td>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte <td align='center'><a href='metadata/doc-files/jpeg_metadata.html'>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte JPEG metadata format</a></td>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte</tr>
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<!-- PNG plugin -->
fcf3ce441efd61da9bb2884968af01cb7c1452ccJohn Forte<tr>
<td><a href="http://www.libpng.org/pub/png/spec/">PNG</a></td>
<td align='center'>yes</td>
<td align='center'>yes</td>
<td align='center'>none</td>
<td align='center'><a href='metadata/doc-files/png_metadata.html'>
PNG metadata format</a></td>
</tr>
<!-- BMP plugin -->
<tr>
<td>BMP</td>
<td align='center'>yes</td>
<td align='center'>yes</td>
<td align='center'>none</td>
<td align='center'><a href='metadata/doc-files/bmp_metadata.html'>
BMP metadata format</a></td>
</tr>
<!-- WBMP plugin -->
<tr>
<td><a href="http://www.wapforum.org/what/technical/SPEC-WAESpec-19990524.pdf">WBMP</a></td>
<td align='center'>yes</td>
<td align='center'>yes</td>
<td align='center'>none</td>
<td align='center'><a href='metadata/doc-files/wbmp_metadata.html'>
WBMP metadata format</a></td>
</tr>
<!-- GIF plugin -->
<tr>
<td><a href="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF</a></td>
<td align='center'>yes</td>
<td align='center'>yes</td>
<td align='center'><a href="#gif_plugin_notes">
GIF plug-in notes</a></td>
<td align='center'><a href='metadata/doc-files/gif_metadata.html'>
GIF metadata format</a></td>
</tr>
</table>
</div>
<BR>
<BR>
<BR>
<h2> Standard Plug-in Notes</h2>
<h3><a name="gif_plugin_notes">Standard plug-in for GIF image format</a></h3>
<p>
ImageIO provides <code>ImageReader</code> and <code>ImageWriter</code>
plug-ins for the <a href="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">
Graphics Interchange Format (GIF)</a> image format.
These are the "standard" GIF plug-ins, meaning those that are included in the
JRE, as distinct from those included in standard extensions, or 3rd party
plug-ins. The following notes and metadata specification apply to the
standard plug-ins.
<h3>Writing GIF images</h3>
The GIF image writer plug-in guarantees lossless writing for images which meet
the following requirements:
<ul>
<li>the number of bands is 1;
<li>the number of bits per sample is not greater than 8;
<li>the size of a color component is not greater than 8;
</ul> </p>
<p>
By default the GIF writer plug-in creates version "89a" images. This can be
changed to "87a" by explicitly setting the version in the
stream metadata (see <a
href="metadata/doc-files/gif_metadata.html#gif_stream_metadata_format">
GIF Stream Metadata Format Specification</a>).
</p>
<!-- animated images -->
<p>
The GIF writer plug-in supports the creation of animated GIF images through
the standard sequence writing methods defined in the
<code>ImageWriter</code> class.
<!-- TODO: add example here -->
</p>
<!-- color tables -->
<p>
A global color table is written to the output stream if one of the
following conditions is met:
<ul>
<li> stream metadata containing a GlobalColorTable element is
supplied; </li>
<li> a sequence is being written and image metadata containing a
LocalColorTable element is supplied for the first image in the
sequence;</li>
<li>image metadata is not supplied or does not contain a LocalColorTable
element. </li>
</ul>
<p>
In the first case the global color table in the stream metadata is
used, in the second the local color table in the image metadata is
used, and in the third a global color table is created from the
ColorModel or SampleModel of the (first) image.
</p>
<p>
A local color table is written to the output stream only if image
metadata containing a LocalColorTable element is supplied to the
writer, or no image metadata is supplied to the writer and the local
color table which would be generated from the image itself is not
equal to the global color table.
</p>
<p>
A Graphic Control Extension block is written to the output stream only
if image metadata containing a GraphicControlExtension element is
supplied to the writer, or no image metadata is supplied and the
local color table generated from the image requires a transparent
index. Application, Plain Text, and Comment Extension blocks are
written only if they are supplied to the writer via image metadata.
</p>
<!-- writing interlaced images -->
<p>
The writing of interlaced images can be controlled by the progressive
mode of the provided <code>ImageWriteParam</code> instance.
If progressive mode is
<code>MODE_DISABLED</code> then a non-interlaced image will be written. If
progressive mode is <code>MODE_DEFAULT</code> then an interlaced image will
be written. If progressive mode is <code>MODE_COPY_FROM_METADATA</code>, then
the metadata setting is used (if it is provided, otherwise an interlaced
image will be written).
</p>
<p>
The GIF image writer plug-in supports setting output stream metadata from
metadata supplied to the writer in either the native GIF stream
metadata format <a href="metadata/doc-files/gif_metadata.html#gif_stream_metadata_format">
javax_imageio_gif_stream_1.0 </a> or the standard metadata format
<a href="metadata/doc-files/standard_metadata.html">
javax_imageio_1.0</a>, and setting
output image metadata from metadata supplied to the writer in either
the native GIF image metadata format <a href="metadata/doc-files/gif_metadata.html#gif_image_metadata_format">
javax_imageio_gif_image_1.0 </a> or the standard metadata format
<a href="metadata/doc-files/standard_metadata.html">javax_imageio_1.0</a>.
The mapping of standard metadata format to the GIF native stream and
image metadata formats is given in the tables <a
href="metadata/doc-files/gif_metadata.html#mapping"> here </a>.
</p>
<!--
<HR>
Java<SUP><FONT SIZE="-2">TM</FONT></SUP> Image I/O API Specification
<BR>
<BR>
Public Draft 2 (specification version 0.5)
<BR>
Release: October 1, 2000
<BR>
<BR>
<HR>
-->
@since 1.4
</body>
</html>