FileDocCategorySizeDatePackage
ImageIO.javaAPI DocAndroid 1.5 API25192Wed May 06 22:41:54 BST 2009javax.imageio

ImageIO

public final class ImageIO extends Object
The ImageIO class provides static methods to perform reading and writing operations using registered ImageReader and ImageWriter objects.
since
Android 1.0

Fields Summary
private static final IIORegistry
registry
The constant registry.
Constructors Summary
private ImageIO()
Instantiates a new ImageIO.


             
      
    
Methods Summary
public static javax.imageio.stream.ImageInputStreamcreateImageInputStream(java.lang.Object input)
Creates an ImageInputStream from the specified Object. The specified Object should obtain the input source such as File, or InputStream.

param
input the input Object such as File, or InputStream.
return
the ImageInputStream object, or null.
throws
IOException if an I/O exception has occurred.


        if (input == null) {
            throw new IllegalArgumentException("input source cannot be NULL");
        }

        Iterator<ImageInputStreamSpi> it = registry.getServiceProviders(ImageInputStreamSpi.class,
                true);

        while (it.hasNext()) {
            ImageInputStreamSpi spi = it.next();
            if (spi.getInputClass().isInstance(input)) {
                return spi.createInputStreamInstance(input);
            }
        }
        return null;
    
public static javax.imageio.stream.ImageOutputStreamcreateImageOutputStream(java.lang.Object output)
Creates an ImageOutputStream using the specified Object. The specified Object should obtain the output source such as File, or OutputStream.

param
output the output Object such as File, or OutputStream.
return
the ImageOutputStream object, or null.
throws
IOException if an I/O exception has occurred.

        if (output == null) {
            throw new IllegalArgumentException("output destination cannot be NULL");
        }

        Iterator<ImageOutputStreamSpi> it = registry.getServiceProviders(
                ImageOutputStreamSpi.class, true);

        while (it.hasNext()) {
            ImageOutputStreamSpi spi = it.next();
            if (spi.getOutputClass().isInstance(output)) {
                // todo - use getUseCache and getCacheDir here
                return spi.createOutputStreamInstance(output);
            }
        }
        return null;
    
public static java.io.FilegetCacheDirectory()
Gets the directory where cache files are created, returned the file which is set by setCacheDirectory method, or null.

return
the File object which is set by setCacheDirectory method, or null.

        // TODO implement
        // -- null indicates system-dep default temporary directory
        return null;
    
public static javax.imageio.ImageReadergetImageReader(javax.imageio.ImageWriter writer)
Gets an ImageReader object which corresponds to the specified ImageWriter, or returns null if the specified ImageWriter is not registered.

param
writer the registered ImageWriter object.
return
the ImageReader.

        throw new UnsupportedOperationException("Not supported yet");
    
public static java.util.IteratorgetImageReaders(java.lang.Object input)
Gets the Iterator of registered ImageReader which are able to decode an input data specified by input Object.

param
input the input Object with encoded data such as ImageInputStream object.
return
the Iterator of registered ImageReader.

        if (input == null) {
            throw new NullPointerException("input cannot be NULL");
        }

        Iterator<ImageReaderSpi> it = registry.getServiceProviders(ImageReaderSpi.class,
                new CanReadFilter(input), true);

        return new SpiIteratorToReadersIteratorWrapper(it);
    
public static java.util.IteratorgetImageReadersByFormatName(java.lang.String formatName)
Gets the Iterator of registered ImageReader which are able to decode the specified format.

param
formatName the format name such as "jpeg", or "gif".
return
the Iterator of registered ImageReader.

        if (formatName == null) {
            throw new NullPointerException("format name cannot be NULL");
        }

        Iterator<ImageReaderSpi> it = registry.getServiceProviders(ImageReaderSpi.class,
                new FormatFilter(formatName), true);

        return new SpiIteratorToReadersIteratorWrapper(it);
    
public static java.util.IteratorgetImageReadersByMIMEType(java.lang.String MIMEType)
Gets the Iterator of registered ImageReader objects that are able to decode files with the specified MIME type.

param
MIMEType the MIME type such as "image/jpeg".
return
the Iterator of registered ImageReaders.

        throw new UnsupportedOperationException("Not supported yet");
    
public static java.util.IteratorgetImageReadersBySuffix(java.lang.String fileSuffix)
Gets the Iterator which lists the registered ImageReader objects that are able to decode files with the specified suffix.

param
fileSuffix the file suffix such as "jpg".
return
the Iterator of registered ImageReaders.

        if (fileSuffix == null) {
            throw new NullPointerException("suffix cannot be NULL");
        }
        Iterator<ImageReaderSpi> it = registry.getServiceProviders(ImageReaderSpi.class,
                new SuffixFilter(fileSuffix), true);

        return new SpiIteratorToReadersIteratorWrapper(it);
    
public static java.util.IteratorgetImageTranscoders(javax.imageio.ImageReader reader, javax.imageio.ImageWriter writer)
Gets the Iterator of registered ImageTranscoders which are able to transcode the metadata of the specified ImageReader object to a suitable object for encoding by the specified ImageWriter.

param
reader the specified ImageReader.
param
writer the specified ImageWriter.
return
the Iterator of registered ImageTranscoders.

        throw new UnsupportedOperationException("Not supported yet");
    
public static javax.imageio.ImageWritergetImageWriter(javax.imageio.ImageReader reader)
Gets an ImageWriter object which corresponds to the specified ImageReader, or returns null if the specified ImageReader is not registered.

param
reader the specified ImageReader.
return
the ImageWriter, or null.

        throw new UnsupportedOperationException("Not supported yet");
    
public static java.util.IteratorgetImageWriters(javax.imageio.ImageTypeSpecifier type, java.lang.String formatName)
Gets the Iterator of ImageWriter objects which are able to encode images with the specified ImageTypeSpecifier and format.

param
type the ImageTypeSpecifier, which defines layout.
param
formatName the format name.
return
the Iterator of ImageWriter objects.

        if (type == null) {
            throw new NullPointerException("type cannot be NULL");
        }

        if (formatName == null) {
            throw new NullPointerException("format name cannot be NULL");
        }

        Iterator<ImageWriterSpi> it = registry.getServiceProviders(ImageWriterSpi.class,
                new FormatAndEncodeFilter(type, formatName), true);

        return new SpiIteratorToWritersIteratorWrapper(it);
    
public static java.util.IteratorgetImageWritersByFormatName(java.lang.String formatName)
Gets the Iterator which lists the registered ImageReader objects that are able to encode the specified image format.

param
formatName the image format name such as "jpeg".
return
the Iterator of registered ImageWriter.

        if (formatName == null) {
            throw new NullPointerException("format name cannot be NULL");
        }

        Iterator<ImageWriterSpi> it = registry.getServiceProviders(ImageWriterSpi.class,
                new FormatFilter(formatName), true);

        return new SpiIteratorToWritersIteratorWrapper(it);
    
public static java.util.IteratorgetImageWritersByMIMEType(java.lang.String MIMEType)
Gets the Iterator which lists the registered ImageReader objects that are able to encode the specified MIME type.

param
MIMEType the MIME type such as "image/jpeg".
return
the Iterator of registered ImageWriter.

        throw new UnsupportedOperationException("Not supported yet");
    
public static java.util.IteratorgetImageWritersBySuffix(java.lang.String fileSuffix)
Gets the Iterator which lists the registered ImageReader objects that are able to encode the specified suffix.

param
fileSuffix the file suffix such as "jpg".
return
the Iterator of registered ImageWriter.

        if (fileSuffix == null) {
            throw new NullPointerException("suffix cannot be NULL");
        }
        Iterator<ImageWriterSpi> it = registry.getServiceProviders(ImageWriterSpi.class,
                new SuffixFilter(fileSuffix), true);
        return new SpiIteratorToWritersIteratorWrapper(it);
    
public static java.lang.String[]getReaderFormatNames()
Gets the array of format names as String which can be decoded by registered ImageReader objects.

return
the array of format names.

        throw new UnsupportedOperationException("Not supported yet");
    
public static java.lang.String[]getReaderMIMETypes()
Gets the array of MIME types as String which can be decoded by registered ImageReader objects.

return
the array of MIME types.

        throw new UnsupportedOperationException("Not supported yet");
    
public static booleangetUseCache()
Gets the flag which indicates whether a cache file is used when creating ImageInputStreams and ImageOutputStreams or not. This method returns the current value which is set by setUseCache method.

return
the use cache flag.

        // TODO implement
        return false;
    
public static java.lang.String[]getWriterFormatNames()
Gets an array of Strings giving the names of the formats supported by registered ImageWriter objects.

return
the array of format names.

        throw new UnsupportedOperationException("Not supported yet");
    
public static java.lang.String[]getWriterMIMETypes()
Gets an array of Strings giving the MIME types of the formats supported by registered ImageWriter objects.

return
the array of MIME types.

        throw new UnsupportedOperationException("Not supported yet");
    
public static java.awt.image.BufferedImageread(java.io.File input)
Reads image data from the specified File and decodes it using the appropriate registered ImageReader object. The File is wrapped in an ImageInputStream.

param
input the File to be read.
return
the BufferedImage decoded from the specified File, or null.
throws
IOException if an I/O exception has occurred.

        if (input == null) {
            throw new IllegalArgumentException("input == null!");
        }

        ImageInputStream stream = createImageInputStream(input);
        return read(stream);
    
public static java.awt.image.BufferedImageread(java.io.InputStream input)
Reads image data from the specified InputStream and decodes it using an appropriate registered an ImageReader object.

param
input the InputStream.
return
the BufferedImage decoded from the specified InputStream, or null.
throws
IOException if an I/O exception has occurred.

        if (input == null) {
            throw new IllegalArgumentException("input == null!");
        }

        ImageInputStream stream = createImageInputStream(input);
        return read(stream);
    
public static java.awt.image.BufferedImageread(java.net.URL input)
Reads image data from the specified URL and decodes it using the appropriate registered ImageReader object.

param
input the URL to be read.
return
the BufferedImage decoded from the specified URL, or null.
throws
IOException if an I/O exception has occurred.

        if (input == null) {
            throw new IllegalArgumentException("input == null!");
        }

        InputStream stream = input.openStream();
        BufferedImage res = read(stream);
        stream.close();

        return res;
    
public static java.awt.image.BufferedImageread(javax.imageio.stream.ImageInputStream stream)
Reads image data from the specified ImageInputStream and decodes it using appropriate registered an ImageReader object.

param
stream the ImageInputStream.
return
the BufferedImage decoded from the specified ImageInputStream, or null.
throws
IOException if an I/O exception has occurred.

        if (stream == null) {
            throw new IllegalArgumentException("stream == null!");
        }

        Iterator<ImageReader> imageReaders = getImageReaders(stream);
        if (!imageReaders.hasNext()) {
            return null;
        }

        ImageReader reader = imageReaders.next();
        reader.setInput(stream, false, true);
        BufferedImage res = reader.read(0);
        reader.dispose();

        try {
            stream.close();
        } catch (IOException e) {
            // Stream could be already closed, proceed silently in this case
        }

        return res;
    
public static voidscanForPlugins()
Scans for plug-ins in the class path, loads spi classes, and registers them with the IIORegistry.

        throw new UnsupportedOperationException("Not supported yet");
    
public static voidsetCacheDirectory(java.io.File cacheDirectory)
Sets the cache directory.

param
cacheDirectory the File which specifies a cache directory.

        throw new UnsupportedOperationException("Not supported yet");
    
public static voidsetUseCache(boolean useCache)
Sets flag which indicates whether a cache file is used when creating ImageInputStreams and ImageOutputStreams or not.

param
useCache the use cache flag.

        throw new UnsupportedOperationException("Not supported yet");
    
public static booleanwrite(java.awt.image.RenderedImage im, java.lang.String formatName, javax.imageio.stream.ImageOutputStream output)
Writes the specified image in the specified format (using an appropriate ImageWriter) to the specified ImageOutputStream.

param
im the RenderedImage.
param
formatName the format name.
param
output the ImageOutputStream where Image to be written.
return
true, if Image is written successfully, false otherwise.
throws
IOException if an I/O exception has occurred.


        if (im == null) {
            throw new IllegalArgumentException("image cannot be NULL");
        }
        if (formatName == null) {
            throw new IllegalArgumentException("format name cannot be NULL");
        }
        if (output == null) {
            throw new IllegalArgumentException("output cannot be NULL");
        }

        Iterator<ImageWriter> it = getImageWriters(ImageTypeSpecifier.createFromRenderedImage(im),
                formatName);
        if (it.hasNext()) {
            ImageWriter writer = it.next();
            writer.setOutput(output);
            writer.write(im);
            output.flush();
            writer.dispose();
            return true;
        }
        return false;
    
public static booleanwrite(java.awt.image.RenderedImage im, java.lang.String formatName, java.io.File output)
Writes the specified image in the specified format (using an appropriate ImageWriter) to the specified File.

param
im the RenderedImage.
param
formatName the format name.
param
output the output File where Image to be written.
return
true, if Image is written successfully, false otherwise.
throws
IOException if an I/O exception has occurred.


        if (output == null) {
            throw new IllegalArgumentException("output cannot be NULL");
        }

        if (output.exists()) {
            output.delete();
        }

        ImageOutputStream ios = createImageOutputStream(output);
        boolean rt = write(im, formatName, ios);
        ios.close();
        return rt;
    
public static booleanwrite(java.awt.image.RenderedImage im, java.lang.String formatName, java.io.OutputStream output)
Writes the specified image in the specified format (using an appropriate ImageWriter) to the specified OutputStream.

param
im the RenderedImage.
param
formatName the format name.
param
output the OutputStream where Image is to be written.
return
true, if Image is written successfully, false otherwise.
throws
IOException if an I/O exception has occurred.


        if (output == null) {
            throw new IllegalArgumentException("output cannot be NULL");
        }

        ImageOutputStream ios = createImageOutputStream(output);
        boolean rt = write(im, formatName, ios);
        ios.close();
        return rt;