public final class ImageIO extends Object
ImageReaders and ImageWriters, and
 performing simple encoding and decoding.| Modifier and Type | Method and Description | 
|---|---|
| static ImageInputStream | createImageInputStream(Object input)Returns an  ImageInputStreamthat will take its
 input from the givenObject. | 
| static ImageOutputStream | createImageOutputStream(Object output)Returns an  ImageOutputStreamthat will send its
 output to the givenObject. | 
| static File | getCacheDirectory()Returns the current value set by
  setCacheDirectory, ornullif no
 explicit setting has been made. | 
| static ImageReader | getImageReader(ImageWriter writer)Returns an  ImageReadercorresponding to the givenImageWriter, if there is one, ornullif the plug-in for thisImageWriterdoes not
 specify a correspondingImageReader, or if the
 givenImageWriteris not registered. | 
| static Iterator<ImageReader> | getImageReaders(Object input)Returns an  Iteratorcontaining all currently
 registeredImageReaders that claim to be able to
 decode the suppliedObject, typically anImageInputStream. | 
| static Iterator<ImageReader> | getImageReadersByFormatName(String formatName)Returns an  Iteratorcontaining all currently
 registeredImageReaders that claim to be able to
 decode the named format. | 
| static Iterator<ImageReader> | getImageReadersByMIMEType(String MIMEType)Returns an  Iteratorcontaining all currently
 registeredImageReaders that claim to be able to
 decode files with the given MIME type. | 
| static Iterator<ImageReader> | getImageReadersBySuffix(String fileSuffix)Returns an  Iteratorcontaining all currently
 registeredImageReaders that claim to be able to
 decode files with the given suffix. | 
| static Iterator<ImageTranscoder> | getImageTranscoders(ImageReader reader,
                   ImageWriter writer)Returns an  Iteratorcontaining all currently
 registeredImageTranscoders that claim to be
 able to transcode between the metadata of the givenImageReaderandImageWriter. | 
| static ImageWriter | getImageWriter(ImageReader reader)Returns an  ImageWritercorresponding to the givenImageReader, if there is one, ornullif the plug-in for thisImageReaderdoes not
 specify a correspondingImageWriter, or if the
 givenImageReaderis not registered. | 
| static Iterator<ImageWriter> | getImageWriters(ImageTypeSpecifier type,
               String formatName)Returns an  Iteratorcontaining all currently
 registeredImageWriters that claim to be able to
 encode images of the given layout (specified using anImageTypeSpecifier) in the given format. | 
| static Iterator<ImageWriter> | getImageWritersByFormatName(String formatName)Returns an  Iteratorcontaining all currently
 registeredImageWriters that claim to be able to
 encode the named format. | 
| static Iterator<ImageWriter> | getImageWritersByMIMEType(String MIMEType)Returns an  Iteratorcontaining all currently
 registeredImageWriters that claim to be able to
 encode files with the given MIME type. | 
| static Iterator<ImageWriter> | getImageWritersBySuffix(String fileSuffix)Returns an  Iteratorcontaining all currently
 registeredImageWriters that claim to be able to
 encode files with the given suffix. | 
| static String[] | getReaderFileSuffixes()Returns an array of  Strings listing all of the
 file suffixes associated with the formats understood
 by the current set of registered readers. | 
| static String[] | getReaderFormatNames()Returns an array of  Strings listing all of the
 informal format names understood by the current set of registered
 readers. | 
| static String[] | getReaderMIMETypes()Returns an array of  Strings listing all of the
 MIME types understood by the current set of registered
 readers. | 
| static boolean | getUseCache()Returns the current value set by  setUseCache, ortrueif no explicit setting has been made. | 
| static String[] | getWriterFileSuffixes()Returns an array of  Strings listing all of the
 file suffixes associated with the formats understood
 by the current set of registered writers. | 
| static String[] | getWriterFormatNames()Returns an array of  Strings listing all of the
 informal format names understood by the current set of registered
 writers. | 
| static String[] | getWriterMIMETypes()Returns an array of  Strings listing all of the
 MIME types understood by the current set of registered
 writers. | 
| static BufferedImage | read(File input)Returns a  BufferedImageas the result of decoding
 a suppliedFilewith anImageReaderchosen automatically from among those currently registered. | 
| static BufferedImage | read(ImageInputStream stream)Returns a  BufferedImageas the result of decoding
 a suppliedImageInputStreamwith anImageReaderchosen automatically from among those
 currently registered. | 
| static BufferedImage | read(InputStream input)Returns a  BufferedImageas the result of decoding
 a suppliedInputStreamwith anImageReaderchosen automatically from among those currently registered. | 
| static BufferedImage | read(URL input)Returns a  BufferedImageas the result of decoding
 a suppliedURLwith anImageReaderchosen automatically from among those currently registered. | 
| static void | scanForPlugins()Scans for plug-ins on the application class path,
 loads their service provider classes, and registers a service
 provider instance for each one found with the
  IIORegistry. | 
| static void | setCacheDirectory(File cacheDirectory)Sets the directory where cache files are to be created. | 
| static void | setUseCache(boolean useCache)Sets a flag indicating whether a disk-based cache file should
 be used when creating  ImageInputStreams andImageOutputStreams. | 
| static boolean | write(RenderedImage im,
     String formatName,
     File output)Writes an image using an arbitrary  ImageWriterthat supports the given format to aFile. | 
| static boolean | write(RenderedImage im,
     String formatName,
     ImageOutputStream output)Writes an image using the an arbitrary  ImageWriterthat supports the given format to anImageOutputStream. | 
| static boolean | write(RenderedImage im,
     String formatName,
     OutputStream output)Writes an image using an arbitrary  ImageWriterthat supports the given format to anOutputStream. | 
public static void scanForPlugins()
IIORegistry.
 This method is needed because the application class path can theoretically change, or additional plug-ins may become available. Rather than re-scanning the classpath on every invocation of the API, the class path is scanned automatically only on the first invocation. Clients can call this method to prompt a re-scan. Thus this method need only be invoked by sophisticated applications which dynamically make new plug-ins available at runtime.
 The getResources method of the context
 ClassLoader is used locate JAR files containing
 files named
 META-INF/services/javax.imageio.spi.classname,
 where classname is one of ImageReaderSpi,
 ImageWriterSpi, ImageTranscoderSpi,
 ImageInputStreamSpi, or
 ImageOutputStreamSpi, along the application class
 path.
 
The contents of the located files indicate the names of actual implementation classes which implement the aforementioned service provider interfaces; the default class loader is then used to load each of these classes and to instantiate an instance of each class, which is then placed into the registry for later retrieval.
The exact set of locations searched depends on the implementation of the Java runtime environment.
public static void setUseCache(boolean useCache)
ImageInputStreams and
 ImageOutputStreams.
  When reading from a standard InputStream, it
 may be necessary to save previously read information in a cache
 since the underlying stream does not allow data to be re-read.
 Similarly, when writing to a standard
 OutputStream, a cache may be used to allow a
 previously written value to be changed before flushing it to
 the final destination.
 
 The cache may reside in main memory or on disk.  Setting
 this flag to false disallows the use of disk for
 future streams, which may be advantageous when working with
 small images, as the overhead of creating and destroying files
 is removed.
 
 On startup, the value is set to true.
useCache - a boolean indicating whether a
 cache file should be used, in cases where it is optional.getUseCache()public static boolean getUseCache()
setUseCache, or
 true if no explicit setting has been made.ImageInputStreams and
 ImageOutputStreams.setUseCache(boolean)public static void setCacheDirectory(File cacheDirectory)
null indicates that the system-dependent
 default temporary-file directory is to be used.  If
 getUseCache returns false, this value is ignored.cacheDirectory - a File specifying a directory.SecurityException - if the security manager denies
 access to the directory.IllegalArgumentException - if cacheDir is
 non-null but is not a directory.File.createTempFile(String, String, File), 
getCacheDirectory()public static File getCacheDirectory()
setCacheDirectory, or null if no
 explicit setting has been made.File indicating the directory where
 cache files will be created, or null to indicate
 the system-dependent default temporary-file directory.setCacheDirectory(java.io.File)public static ImageInputStream createImageInputStream(Object input) throws IOException
ImageInputStream that will take its
 input from the given Object.  The set of
 ImageInputStreamSpis registered with the
 IIORegistry class is queried and the first one
 that is able to take input from the supplied object is used to
 create the returned ImageInputStream.  If no
 suitable ImageInputStreamSpi exists,
 null is returned.
  The current cache settings from getUseCacheand
 getCacheDirectory will be used to control caching.
input - an Object to be used as an input
 source, such as a File, readable
 RandomAccessFile, or InputStream.ImageInputStream, or null.IllegalArgumentException - if input
 is null.IOException - if a cache file is needed but cannot be
 created.ImageInputStreamSpipublic static ImageOutputStream createImageOutputStream(Object output) throws IOException
ImageOutputStream that will send its
 output to the given Object.  The set of
 ImageOutputStreamSpis registered with the
 IIORegistry class is queried and the first one
 that is able to send output from the supplied object is used to
 create the returned ImageOutputStream.  If no
 suitable ImageOutputStreamSpi exists,
 null is returned.
  The current cache settings from getUseCacheand
 getCacheDirectory will be used to control caching.
output - an Object to be used as an output
 destination, such as a File, writable
 RandomAccessFile, or OutputStream.ImageOutputStream, or
 null.IllegalArgumentException - if output is
 null.IOException - if a cache file is needed but cannot be
 created.ImageOutputStreamSpipublic static String[] getReaderFormatNames()
Strings listing all of the
 informal format names understood by the current set of registered
 readers.Strings.public static String[] getReaderMIMETypes()
Strings listing all of the
 MIME types understood by the current set of registered
 readers.Strings.public static String[] getReaderFileSuffixes()
Strings listing all of the
 file suffixes associated with the formats understood
 by the current set of registered readers.Strings.public static Iterator<ImageReader> getImageReaders(Object input)
Iterator containing all currently
 registered ImageReaders that claim to be able to
 decode the supplied Object, typically an
 ImageInputStream.
 The stream position is left at its prior position upon exit from this method.
input - an ImageInputStream or other
 Object containing encoded image data.Iterator containing ImageReaders.IllegalArgumentException - if input is
 null.ImageReaderSpi.canDecodeInput(java.lang.Object)public static Iterator<ImageReader> getImageReadersByFormatName(String formatName)
Iterator containing all currently
 registered ImageReaders that claim to be able to
 decode the named format.formatName - a String containing the informal
 name of a format (e.g., "jpeg" or "tiff".Iterator containing
 ImageReaders.IllegalArgumentException - if formatName
 is null.ImageReaderWriterSpi.getFormatNames()public static Iterator<ImageReader> getImageReadersBySuffix(String fileSuffix)
Iterator containing all currently
 registered ImageReaders that claim to be able to
 decode files with the given suffix.fileSuffix - a String containing a file
 suffix (e.g., "jpg" or "tiff").Iterator containing
 ImageReaders.IllegalArgumentException - if fileSuffix
 is null.ImageReaderWriterSpi.getFileSuffixes()public static Iterator<ImageReader> getImageReadersByMIMEType(String MIMEType)
Iterator containing all currently
 registered ImageReaders that claim to be able to
 decode files with the given MIME type.MIMEType - a String containing a file
 suffix (e.g., "image/jpeg" or "image/x-bmp").Iterator containing
 ImageReaders.IllegalArgumentException - if MIMEType is
 null.ImageReaderWriterSpi.getMIMETypes()public static String[] getWriterFormatNames()
Strings listing all of the
 informal format names understood by the current set of registered
 writers.Strings.public static String[] getWriterMIMETypes()
Strings listing all of the
 MIME types understood by the current set of registered
 writers.Strings.public static String[] getWriterFileSuffixes()
Strings listing all of the
 file suffixes associated with the formats understood
 by the current set of registered writers.Strings.public static Iterator<ImageWriter> getImageWritersByFormatName(String formatName)
Iterator containing all currently
 registered ImageWriters that claim to be able to
 encode the named format.formatName - a String containing the informal
 name of a format (e.g., "jpeg" or "tiff".Iterator containing
 ImageWriters.IllegalArgumentException - if formatName is
 null.ImageReaderWriterSpi.getFormatNames()public static Iterator<ImageWriter> getImageWritersBySuffix(String fileSuffix)
Iterator containing all currently
 registered ImageWriters that claim to be able to
 encode files with the given suffix.fileSuffix - a String containing a file
 suffix (e.g., "jpg" or "tiff").Iterator containing ImageWriters.IllegalArgumentException - if fileSuffix is
 null.ImageReaderWriterSpi.getFileSuffixes()public static Iterator<ImageWriter> getImageWritersByMIMEType(String MIMEType)
Iterator containing all currently
 registered ImageWriters that claim to be able to
 encode files with the given MIME type.MIMEType - a String containing a file
 suffix (e.g., "image/jpeg" or "image/x-bmp").Iterator containing ImageWriters.IllegalArgumentException - if MIMEType is
 null.ImageReaderWriterSpi.getMIMETypes()public static ImageWriter getImageWriter(ImageReader reader)
ImageWritercorresponding to the given
 ImageReader, if there is one, or null
 if the plug-in for this ImageReader does not
 specify a corresponding ImageWriter, or if the
 given ImageReader is not registered.  This
 mechanism may be used to obtain an ImageWriter
 that will understand the internal structure of non-pixel
 metadata (as encoded by IIOMetadata objects)
 generated by the ImageReader.  By obtaining this
 data from the ImageReader and passing it on to the
 ImageWriter obtained with this method, a client
 program can read an image, modify it in some way, and write it
 back out preserving all metadata, without having to understand
 anything about the structure of the metadata, or even about
 the image format.  Note that this method returns the
 "preferred" writer, which is the first in the list returned by
 javax.imageio.spi.ImageReaderSpi.getImageWriterSpiNames().reader - an instance of a registered ImageReader.ImageWriter, or null.IllegalArgumentException - if reader is
 null.getImageReader(ImageWriter), 
ImageReaderSpi.getImageWriterSpiNames()public static ImageReader getImageReader(ImageWriter writer)
ImageReadercorresponding to the given
 ImageWriter, if there is one, or null
 if the plug-in for this ImageWriter does not
 specify a corresponding ImageReader, or if the
 given ImageWriter is not registered.  This method
 is provided principally for symmetry with
 getImageWriter(ImageReader).  Note that this
 method returns the "preferred" reader, which is the first in
 the list returned by
 javax.imageio.spi.ImageWriterSpi.getImageReaderSpiNames().writer - an instance of a registered ImageWriter.ImageReader, or null.IllegalArgumentException - if writer is
 null.getImageWriter(ImageReader), 
ImageWriterSpi.getImageReaderSpiNames()public static Iterator<ImageWriter> getImageWriters(ImageTypeSpecifier type, String formatName)
Iterator containing all currently
 registered ImageWriters that claim to be able to
 encode images of the given layout (specified using an
 ImageTypeSpecifier) in the given format.type - an ImageTypeSpecifier indicating the
 layout of the image to be written.formatName - the informal name of the format.Iterator containing ImageWriters.IllegalArgumentException - if any parameter is
 null.ImageWriterSpi.canEncodeImage(ImageTypeSpecifier)public static Iterator<ImageTranscoder> getImageTranscoders(ImageReader reader, ImageWriter writer)
Iterator containing all currently
 registered ImageTranscoders that claim to be
 able to transcode between the metadata of the given
 ImageReader and ImageWriter.reader - an ImageReader.writer - an ImageWriter.Iterator containing
 ImageTranscoders.IllegalArgumentException - if reader or
 writer is null.public static BufferedImage read(File input) throws IOException
BufferedImage as the result of decoding
 a supplied File with an ImageReader
 chosen automatically from among those currently registered.
 The File is wrapped in an
 ImageInputStream.  If no registered
 ImageReader claims to be able to read the
 resulting stream, null is returned.
  The current cache settings from getUseCacheand
 getCacheDirectory will be used to control caching in the
 ImageInputStream that is created.
 
 Note that there is no read method that takes a
 filename as a String; use this method instead after
 creating a File from the filename.
 
 This method does not attempt to locate
 ImageReaders that can read directly from a
 File; that may be accomplished using
 IIORegistry and ImageReaderSpi.
input - a File to read from.BufferedImage containing the decoded
 contents of the input, or null.IllegalArgumentException - if input is
 null.IOException - if an error occurs during reading.public static BufferedImage read(InputStream input) throws IOException
BufferedImage as the result of decoding
 a supplied InputStream with an ImageReader
 chosen automatically from among those currently registered.
 The InputStream is wrapped in an
 ImageInputStream.  If no registered
 ImageReader claims to be able to read the
 resulting stream, null is returned.
  The current cache settings from getUseCacheand
 getCacheDirectory will be used to control caching in the
 ImageInputStream that is created.
 
 This method does not attempt to locate
 ImageReaders that can read directly from an
 InputStream; that may be accomplished using
 IIORegistry and ImageReaderSpi.
 
 This method does not close the provided
 InputStream after the read operation has completed;
 it is the responsibility of the caller to close the stream, if desired.
input - an InputStream to read from.BufferedImage containing the decoded
 contents of the input, or null.IllegalArgumentException - if input is
 null.IOException - if an error occurs during reading.public static BufferedImage read(URL input) throws IOException
BufferedImage as the result of decoding
 a supplied URL with an ImageReader
 chosen automatically from among those currently registered.  An
 InputStream is obtained from the URL,
 which is wrapped in an ImageInputStream.  If no
 registered ImageReader claims to be able to read
 the resulting stream, null is returned.
  The current cache settings from getUseCacheand
 getCacheDirectory will be used to control caching in the
 ImageInputStream that is created.
 
 This method does not attempt to locate
 ImageReaders that can read directly from a
 URL; that may be accomplished using
 IIORegistry and ImageReaderSpi.
input - a URL to read from.BufferedImage containing the decoded
 contents of the input, or null.IllegalArgumentException - if input is
 null.IOException - if an error occurs during reading.public static BufferedImage read(ImageInputStream stream) throws IOException
BufferedImage as the result of decoding
 a supplied ImageInputStream with an
 ImageReader chosen automatically from among those
 currently registered.  If no registered
 ImageReader claims to be able to read the stream,
 null is returned.
  Unlike most other methods in this class, this method does
 close the provided ImageInputStream after the read
 operation has completed, unless null is returned,
 in which case this method does not close the stream.
stream - an ImageInputStream to read from.BufferedImage containing the decoded
 contents of the input, or null.IllegalArgumentException - if stream is
 null.IOException - if an error occurs during reading.public static boolean write(RenderedImage im, String formatName, ImageOutputStream output) throws IOException
ImageWriter
 that supports the given format to an
 ImageOutputStream.  The image is written to the
 ImageOutputStream starting at the current stream
 pointer, overwriting existing stream data from that point
 forward, if present.
  This method does not close the provided
 ImageOutputStream after the write operation has completed;
 it is the responsibility of the caller to close the stream, if desired.
im - a RenderedImage to be written.formatName - a String containing the informal
 name of the format.output - an ImageOutputStream to be written to.false if no appropriate writer is found.IllegalArgumentException - if any parameter is
 null.IOException - if an error occurs during writing.public static boolean write(RenderedImage im, String formatName, File output) throws IOException
ImageWriter
 that supports the given format to a File.  If
 there is already a File present, its contents are
 discarded.im - a RenderedImage to be written.formatName - a String containing the informal
 name of the format.output - a File to be written to.false if no appropriate writer is found.IllegalArgumentException - if any parameter is
 null.IOException - if an error occurs during writing.public static boolean write(RenderedImage im, String formatName, OutputStream output) throws IOException
ImageWriter
 that supports the given format to an OutputStream.
  This method does not close the provided
 OutputStream after the write operation has completed;
 it is the responsibility of the caller to close the stream, if desired.
 
 The current cache settings from getUseCacheand
 getCacheDirectory will be used to control caching.
im - a RenderedImage to be written.formatName - a String containing the informal
 name of the format.output - an OutputStream to be written to.false if no appropriate writer is found.IllegalArgumentException - if any parameter is
 null.IOException - if an error occurs during writing. 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, 2015, Oracle and/or its affiliates.  All rights reserved.