public class

GIFImageWriter

extends ImageWriter
java.lang.Object
   ↳ javax.imageio.ImageWriter
     ↳ com.sun.imageio.plugins.gif.GIFImageWriter

Summary

[Expand]
Inherited Fields
From class javax.imageio.ImageWriter
Public Constructors
GIFImageWriter(GIFImageWriterSpi originatingProvider)
Public Methods
boolean canWriteSequence()
Returns true if the writer is able to append an image to an image stream that already contains header information and possibly prior images.
IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)
Creates a default image metadata object and merges in the supplied metadata.
IIOMetadata convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
Creates a default stream metadata object and merges in the supplied metadata.
void endWriteSequence()
Completes the writing of a sequence of images begun with prepareWriteSequence.
IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param)
Returns an IIOMetadata object containing default values for encoding an image of the given type.
IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)
Returns an IIOMetadata object containing default values for encoding a stream of images.
ImageWriteParam getDefaultWriteParam()
Returns a new ImageWriteParam object of the appropriate type for this file format containing default values, that is, those values that would be used if no ImageWriteParam object were specified.
void prepareWriteSequence(IIOMetadata streamMetadata)
Prepares a stream to accept a series of subsequent writeToSequence calls, using the provided stream metadata object.
void reset()
Restores the ImageWriter to its initial state.
void setOutput(Object output)
Sets the destination to the given ImageOutputStream or other Object.
void write(IIOMetadata sm, IIOImage iioimage, ImageWriteParam p)
Appends a complete image stream containing a single image and associated stream and image metadata and thumbnails to the output.
void writeToSequence(IIOImage image, ImageWriteParam param)
Appends a single image and possibly associated metadata and thumbnails, to the output.
[Expand]
Inherited Methods
From class javax.imageio.ImageWriter
From class java.lang.Object
From interface javax.imageio.ImageTranscoder

Public Constructors

public GIFImageWriter (GIFImageWriterSpi originatingProvider)

Public Methods

public boolean canWriteSequence ()

Returns true if the writer is able to append an image to an image stream that already contains header information and possibly prior images.

If canWriteSequence returns false, writeToSequence and endWriteSequence will throw an UnsupportedOperationException.

The default implementation returns false.

Returns
  • true if images may be appended sequentially.

public IIOMetadata convertImageMetadata (IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)

Creates a default image metadata object and merges in the supplied metadata.

Parameters
inData an IIOMetadata object representing image metadata, used to initialize the state of the returned object.
imageType an ImageTypeSpecifier indicating the layout and color information of the image with which the metadata will be associated.
param an ImageWriteParam that will be used to encode the image, or null.
Returns
  • an IIOMetadata object, or null if the plug-in does not provide metadata encoding capabilities.

public IIOMetadata convertStreamMetadata (IIOMetadata inData, ImageWriteParam param)

Creates a default stream metadata object and merges in the supplied metadata.

Parameters
inData an IIOMetadata object representing stream metadata, used to initialize the state of the returned object.
param an ImageWriteParam that will be used to encode the image, or null.
Returns
  • an IIOMetadata object, or null if the plug-in does not provide metadata encoding capabilities.

public void endWriteSequence ()

Completes the writing of a sequence of images begun with prepareWriteSequence. Any stream metadata that should come at the end of the sequence of images is written out, and any header information at the beginning of the sequence is patched up if necessary. If the output is an ImageOutputStream, data through the stream metadata at the end of the sequence are flushed and need not be readable or writable.

If canWriteSequence returns false, this method will throw an UnsupportedOperationException.

The default implementation throws an IllegalStateException if the output is null, and otherwise throws an UnsupportedOperationException.

Throws
IOException

public IIOMetadata getDefaultImageMetadata (ImageTypeSpecifier imageType, ImageWriteParam param)

Returns an IIOMetadata object containing default values for encoding an image of the given type. The contents of the object may be manipulated using either the XML tree structure returned by the IIOMetadata.getAsTree method, an IIOMetadataController object, or via plug-in specific interfaces, and the resulting data supplied to one of the write methods that take a stream metadata parameter.

An optional ImageWriteParam may be supplied for cases where it may affect the structure of the image metadata.

If the supplied ImageWriteParam contains optional setting values not supported by this writer (e.g. progressive encoding or any format-specific settings), they will be ignored.

Parameters
imageType an ImageTypeSpecifier indicating the format of the image to be written later.
param an ImageWriteParam that will be used to encode the image, or null.
Returns
  • an IIOMetadata object.

public IIOMetadata getDefaultStreamMetadata (ImageWriteParam param)

Returns an IIOMetadata object containing default values for encoding a stream of images. The contents of the object may be manipulated using either the XML tree structure returned by the IIOMetadata.getAsTree method, an IIOMetadataController object, or via plug-in specific interfaces, and the resulting data supplied to one of the write methods that take a stream metadata parameter.

An optional ImageWriteParam may be supplied for cases where it may affect the structure of the stream metadata.

If the supplied ImageWriteParam contains optional setting values not supported by this writer (e.g. progressive encoding or any format-specific settings), they will be ignored.

Writers that do not make use of stream metadata (e.g., writers for single-image formats) should return null.

Parameters
param an ImageWriteParam that will be used to encode the image, or null.
Returns
  • an IIOMetadata object.

public ImageWriteParam getDefaultWriteParam ()

Returns a new ImageWriteParam object of the appropriate type for this file format containing default values, that is, those values that would be used if no ImageWriteParam object were specified. This is useful as a starting point for tweaking just a few parameters and otherwise leaving the default settings alone.

The default implementation constructs and returns a new ImageWriteParam object that does not allow tiling, progressive encoding, or compression, and that will be localized for the current Locale (i.e., what you would get by calling new ImageWriteParam(getLocale()).

Individual plug-ins may return an instance of ImageWriteParam with additional optional features enabled, or they may return an instance of a plug-in specific subclass of ImageWriteParam.

Returns
  • a new ImageWriteParam object containing default values.

public void prepareWriteSequence (IIOMetadata streamMetadata)

Prepares a stream to accept a series of subsequent writeToSequence calls, using the provided stream metadata object. The metadata will be written to the stream if it should precede the image data. If the argument is null, default stream metadata is used.

If the output is an ImageOutputStream, the existing contents of the output prior to the current seek position are flushed, and need not be readable or writable. If the format requires that endWriteSequence be able to rewind to patch up the header information, such as for a sequence of images in a single TIFF file, then the metadata written by this method must remain in a writable portion of the stream. Other formats may flush the stream after this method and after each image.

If canWriteSequence returns false, this method will throw an UnsupportedOperationException.

The output must have been set beforehand using either the setOutput method.

The default implementation throws an IllegalStateException if the output is null, and otherwise throws an UnsupportedOperationException.

Parameters
streamMetadata A stream metadata object, or null.
Throws
IOException

public void reset ()

Restores the ImageWriter to its initial state.

The default implementation calls setOutput(null), setLocale(null), removeAllIIOWriteWarningListeners(), removeAllIIOWriteProgressListeners(), and clearAbortRequest.

public void setOutput (Object output)

Sets the destination to the given ImageOutputStream or other Object. The destination is assumed to be ready to accept data, and will not be closed at the end of each write. This allows distributed imaging applications to transmit a series of images over a single network connection. If output is null, any currently set output will be removed.

If output is an ImageOutputStream, calls to the write, writeToSequence, and prepareWriteEmpty/endWriteEmpty methods will preserve the existing contents of the stream. Other write methods, such as writeInsert, replaceStreamMetadata, replaceImageMetadata, replacePixels, prepareInsertEmpty/endInsertEmpty, and endWriteSequence, require the full contents of the stream to be readable and writable, and may alter any portion of the stream.

Use of a general Object other than an ImageOutputStream is intended for writers that interact directly with an output device or imaging protocol. The set of legal classes is advertised by the writer's service provider's getOutputTypes method; most writers will return a single-element array containing only ImageOutputStream.class to indicate that they accept only an ImageOutputStream.

The default implementation sets the output instance variable to the value of output after checking output against the set of classes advertised by the originating provider, if there is one.

Parameters
output the ImageOutputStream or other Object to use for future writing.

public void write (IIOMetadata sm, IIOImage iioimage, ImageWriteParam p)

Appends a complete image stream containing a single image and associated stream and image metadata and thumbnails to the output. Any necessary header information is included. If the output is an ImageOutputStream, its existing contents prior to the current seek position are not affected, and need not be readable or writable.

The output must have been set beforehand using the setOutput method.

Stream metadata may optionally be supplied; if it is null, default stream metadata will be used.

If canWriteRasters returns true, the IIOImage may contain a Raster source. Otherwise, it must contain a RenderedImage source.

The supplied thumbnails will be resized if needed, and any thumbnails in excess of the supported number will be ignored. If the format requires additional thumbnails that are not provided, the writer should generate them internally.

An ImageWriteParam may optionally be supplied to control the writing process. If param is null, a default write param will be used.

If the supplied ImageWriteParam contains optional setting values not supported by this writer (e.g. progressive encoding or any format-specific settings), they will be ignored.

Parameters
sm an IIOMetadata object representing stream metadata, or null to use default values.
iioimage an IIOImage object containing an image, thumbnails, and metadata to be written.
p an ImageWriteParam, or null to use a default ImageWriteParam.
Throws
IOException

public void writeToSequence (IIOImage image, ImageWriteParam param)

Appends a single image and possibly associated metadata and thumbnails, to the output. If the output is an ImageOutputStream, the existing contents of the output prior to the current seek position may be flushed, and need not be readable or writable, unless the plug-in needs to be able to patch up the header information when endWriteSequence is called (e.g. TIFF).

If canWriteSequence returns false, this method will throw an UnsupportedOperationException.

The output must have been set beforehand using the setOutput method.

prepareWriteSequence must have been called beforehand, or an IllegalStateException is thrown.

If canWriteRasters returns true, the IIOImage may contain a Raster source. Otherwise, it must contain a RenderedImage source.

The supplied thumbnails will be resized if needed, and any thumbnails in excess of the supported number will be ignored. If the format requires additional thumbnails that are not provided, the writer will generate them internally.

An ImageWriteParam may optionally be supplied to control the writing process. If param is null, a default write param will be used.

If the supplied ImageWriteParam contains optional setting values not supported by this writer (e.g. progressive encoding or any format-specific settings), they will be ignored.

The default implementation throws an IllegalStateException if the output is null, and otherwise throws an UnsupportedOperationException.

Parameters
image an IIOImage object containing an image, thumbnails, and metadata to be written.
param an ImageWriteParam, or null to use a default ImageWriteParam.
Throws
IOException