京东自营 + 国补 iPhone 历史最低价          国家补贴 享8折

JDK14/Java14源码在线阅读

/*
 * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/**
 * The main package of the Java Image I/O API.
 * <p>
 * Many common image I/O operations may be performed using the static methods of
 * the {@code ImageIO} class.
 * <p>
 * This package contains the basic classes and interfaces for describing the
 * contents of image files, including metadata and thumbnails
 * ({@code IIOImage}); for controlling the image reading process
 * ({@code ImageReader}, {@code ImageReadParam}, and {@code ImageTypeSpecifier})
 * and image writing process ({@code ImageWriter} and {@code ImageWriteParam});
 * for performing transcoding between formats ({@code ImageTranscoder}), and for
 * reporting errors ({@code IIOException}).
 * <p>
 * All implementations of javax.imageio provide the following standard image
 * format plug-ins:
 *
 * <table class="striped">
 * <caption>Standard image format plug-ins</caption>
 * <thead>
 *   <tr>
 *     <th scope="col">Image format
 *     <th scope="col">Reading
 *     <th scope="col">Writing
 *     <th scope="col">Notes
 *     <th scope="col">Metadata
 * </thead>
 * <tbody>
 * <!-- BMP plugin -->
 *   <tr>
 *     <th scope="row">
 *     <a href="https://msdn.microsoft.com/en-us/library/dd183391.aspx">BMP</a>
 *     <td>yes
 *     <td>yes
 *     <td>none
 *     <td><a href='metadata/doc-files/bmp_metadata.html'>BMP
 *     metadata format</a>
 * <!-- GIF plugin -->
 *   <tr>
 *     <th scope="row">
 *     <a href="http://www.w3.org/Graphics/GIF/spec-gif89a.txt">GIF</a>
 *     <td>yes
 *     <td>yes
 *     <td><a href="#gif_plugin_notes">GIF plug-in notes</a>
 *     <td><a href='metadata/doc-files/gif_metadata.html'>GIF
 *     metadata format</a>
 * <!-- JPEG plugin -->
 *   <tr>
 *     <th scope="row"><a href="http://www.jpeg.org">JPEG</a>
 *     <td>yes
 *     <td>yes
 *     <td>none
 *     <td><a href='metadata/doc-files/jpeg_metadata.html'>
 *     JPEG metadata format</a>
 * <!-- PNG plugin -->
 *   <tr>
 *     <th scope="row"><a href="http://www.libpng.org/pub/png/spec/">PNG</a>
 *     <td>yes
 *     <td>yes
 *     <td>none
 *     <td><a href='metadata/doc-files/png_metadata.html'>PNG
 *     metadata format</a>
 * <!-- TIFF plugin -->
 *   <tr>
 *     <th scope="row">
 *     <a href="https://www.itu.int/itudoc/itu-t/com16/tiff-fx/docs/tiff6.pdf">
 *     TIFF</a>
 *     <td>yes
 *     <td>yes
 *     <td>
 *     <a href='metadata/doc-files/tiff_metadata.html#Reading'>TIFF plug-in
 *     notes</a>
 *     <td>
 *     <a href='metadata/doc-files/tiff_metadata.html#StreamMetadata'>TIFF
 *     metadata format</a>
 * <!-- WBMP plugin -->
 *   <tr>
 *     <th scope="row">
 *     <a href="http://www.wapforum.org/what/technical/SPEC-WAESpec-19990524.pdf">
 *     WBMP</a>
 *     <td>yes
 *     <td>yes
 *     <td>none
 *     <td><a href='metadata/doc-files/wbmp_metadata.html'>
 *     WBMP metadata format</a>
 * </tbody>
 * </table>
 *
 * <h2> Standard Plug-in Notes</h2>
 *
 * <h3><a id="gif_plugin_notes">Standard plug-in for GIF image format</a></h3>
 * ImageIO provides {@code ImageReader} and {@code ImageWriter}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>
 *     <li>the number of bits per sample is not greater than 8;</li>
 *     <li>the size of a color component is not greater than 8;</li>
 * </ul>
 * <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>).
 *
 * <!-- 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}
 * class.
 *
 * <!-- TODO: add example here -->
 *
 * <!--  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>
 * 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>
 * 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.
 *
 * <!-- writing interlaced images -->
 * <p>
 * The writing of interlaced images can be controlled by the progressive mode of
 * the provided {@code ImageWriteParam} instance. If progressive mode is
 * {@code MODE_DISABLED} then a non-interlaced image will be written. If
 * progressive mode is {@code MODE_DEFAULT} then an interlaced image will be
 * written. If progressive mode is {@code MODE_COPY_FROM_METADATA}, then the
 * metadata setting is used (if it is provided, otherwise an interlaced image
 * will be written).
 * <p>
 * The GIF image writer plug-in supports setting output stream metadata from

/**代码未完, 请加载全部代码(NowJava.com).**/
展开阅读全文

关注时代Java

关注时代Java