/*
* @(#)ImageWriter.java 1.96 06/04/07
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.imageio;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.awt.image.Raster;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import javax.imageio.event.IIOWriteWarningListener;
import javax.imageio.event.IIOWriteProgressListener;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.stream.ImageOutputStream;
import javax.imageio.spi.ImageWriterSpi;
/**
* An abstract superclass for encoding and writing images. This class
* must be subclassed by classes that write out images in the context
* of the Java Image I/O framework.
*
* <p> <code>ImageWriter</code> objects are normally instantiated by
* the service provider class for the specific format. Service
* provider classes are registered with the <code>IIORegistry</code>,
* which uses them for format recognition and presentation of
* available format readers and writers.
*
* <p>
*
* @see ImageReader
* @see ImageWriteParam
* @see javax.imageio.spi.IIORegistry
* @see javax.imageio.spi.ImageWriterSpi
*
* @version 0.5
*/
public abstract class ImageWriter implements ImageTranscoder {
/**
* The <code>ImageWriterSpi</code> that instantiated this object,
* or <code>null</code> if its identity is not known or none
* exists. By default it is initialized to <code>null</code>.
*/
protected ImageWriterSpi originatingProvider = null;
/**
* The <code>ImageOutputStream</code> or other <code>Object</code>
* set by <code>setOutput</code> and retrieved by
* <code>getOutput</code>. By default it is initialized to
* <code>null</code>.
*/
protected Object output = null;
/**
* An array of <code>Locale</code>s that may be used to localize
* warning messages and compression setting values, or
* <code>null</code> if localization is not supported. By default
* it is initialized to <code>null</code>.
*/
protected Locale[] availableLocales = null;
/**
* The current <code>Locale</code> to be used for localization, or
* <code>null</code> if none has been set. By default it is
* initialized to <code>null</code>.
*/
protected Locale locale = null;
/**
* A <code>List</code> of currently registered
* <code>IIOWriteWarningListener</code>s, initialized by default to
* <code>null</code>, which is synonymous with an empty
* <code>List</code>.
*/
protected List<IIOWriteWarningListener> warningListeners = null;
/**
* A <code>List</code> of <code>Locale</code>s, one for each
* element of <code>warningListeners</code>, initialized by default
* <code>null</code>, which is synonymous with an empty
* <code>List</code>.
*/
protected List<Locale> warningLocales = null;
/**
* A <code>List</code> of currently registered
* <code>IIOWriteProgressListener</code>s, initialized by default
* <code>null</code>, which is synonymous with an empty
* <code>List</code>.
*/
=1= |