javax.imageio

Class ImageWriter

public abstract class ImageWriter extends Object implements ImageTranscoder

A class for encoding images within the ImageIO framework. An ImageWriter for a given format is instantiated by an ImageWriterSpi for that format. ImageWriterSpis are registered with the IIORegistry. The ImageWriter API supports writing animated images that may have multiple frames; to support such images many methods take an index parameter. Images may also be written in multiple passes, where each successive pass increases the level of detail in the destination image.
Field Summary
protected Locale[]availableLocales
All locales available for localization of warning messages, or null if localization is not supported.
protected Localelocale
The current locale used to localize warning messages, or null if no locale has been set.
protected ImageWriterSpioriginatingProvider
The image writer SPI that instantiated this writer.
protected Objectoutput
An ImageInputStream to which image data is written.
protected List<IIOWriteProgressListener>progressListeners
A list of installed progress listeners.
protected List<IIOWriteWarningListener>warningListeners
A list of installed warning listeners.
protected List<Locale>warningLocales
A list of warning locales corresponding with the list of installed warning listeners.
Constructor Summary
protected ImageWriter(ImageWriterSpi originatingProvider)
Construct an image writer.
Method Summary
voidabort()
Request that writing be aborted.
protected booleanabortRequested()
Check if the abort flag is set.
voidaddIIOWriteProgressListener(IIOWriteProgressListener listener)
Install a write progress listener.
voidaddIIOWriteWarningListener(IIOWriteWarningListener listener)
Install a write warning listener.
booleancanInsertEmpty(int imageIndex)
Check whether a new empty image can be inserted at the given frame index.
booleancanInsertImage(int imageIndex)
Check whether an image can be inserted at the given frame index.
booleancanRemoveImage(int imageIndex)
Check whether an image can be removed from the given frame index.
booleancanReplaceImageMetadata(int imageIndex)
Check whether the metadata associated the image at the given frame index can be replaced.
booleancanReplacePixels(int imageIndex)
Check whether the pixels within the image at the given index can be replaced.
booleancanReplaceStreamMetadata()
Check whether the metadata associated the entire image stream can be replaced.
booleancanWriteEmpty()
Check whether an entire empty image, including empty metadata and empty thumbnails, can be written to the output stream, leaving pixel values to be filled in later using the replacePixels methods.
booleancanWriteRasters()
Check if IIOImages containing raster data are supported.
booleancanWriteSequence()
Check if an image can be appended at the end of the current list of images even if prior images have already been written.
protected voidclearAbortRequest()
Clear the abort flag.
abstract IIOMetadataconvertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)
Convert IIOMetadata from an input reader format, returning an IIOMetadata suitable for use by an image writer.
abstract IIOMetadataconvertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
Convert IIOMetadata from an input stream format, returning an IIOMetadata suitable for use by an image writer.
voiddispose()
Releases any resources allocated to this object.
voidendInsertEmpty()
Complete inserting an empty image in the output stream.
voidendReplacePixels()
Complete replacing pixels in an image in the output stream.
voidendWriteEmpty()
Complete writing an empty image to the image output stream.
voidendWriteSequence()
Complete writing a sequence of images to the output stream.
Locale[]getAvailableLocales()
Retrieve the available locales.
abstract IIOMetadatagetDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param)
Get a metadata object appropriate for encoding an image specified by the given image type specifier and optional image write parameters.
abstract IIOMetadatagetDefaultStreamMetadata(ImageWriteParam param)
Get a metadata object appropriate for encoding the default image type handled by this writer, optionally considering image write parameters.
ImageWriteParamgetDefaultWriteParam()
Retrieve the default write parameters for this writer's image format.
LocalegetLocale()
Get this writer's locale. null is returned if the locale has not been set.
intgetNumThumbnailsSupported(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
Get the number of thumbnails supported by this image writer, based on the given image type, image writing parameters, and stream and image metadata.
ImageWriterSpigetOriginatingProvider()
Get the ImageWriterSpi that created this writer or null.
ObjectgetOutput()
Get this reader's image output destination. null is returned if the image destination has not been set.
Dimension[]getPreferredThumbnailSizes(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
Get the preferred sizes for thumbnails based on the given image type, image writing parameters, and stream and image metadata.
voidprepareInsertEmpty(int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)
Start inserting an empty image in the image output stream.
voidprepareReplacePixels(int imageIndex, Rectangle region)
Start the replacement of pixels within an image in the output stream.
voidprepareWriteEmpty(IIOMetadata streamMetadata, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)
Start writing an empty image to the end of the image output stream.
voidprepareWriteSequence(IIOMetadata streamMetadata)
Start the writing of a sequence of images.
protected voidprocessImageComplete()
Notifies all installed write progress listeners that image loading has completed by calling their imageComplete methods.
protected voidprocessImageProgress(float percentageDone)
Notifies all installed write progress listeners that a certain percentage of the image has been loaded, by calling their imageProgress methods.
protected voidprocessImageStarted(int imageIndex)
Notifies all installed write progress listeners, by calling their imageStarted methods, that image loading has started on the given image.
protected voidprocessThumbnailComplete()
Notifies all installed write progress listeners, by calling their thumbnailComplete methods, that a thumbnail has completed loading.
protected voidprocessThumbnailProgress(float percentageDone)
Notifies all installed write progress listeners that a certain percentage of a thumbnail has been loaded, by calling their thumbnailProgress methods.
protected voidprocessThumbnailStarted(int imageIndex, int thumbnailIndex)
Notifies all installed write progress listeners, by calling their imageStarted methods, that thumbnail loading has started on the given thumbnail of the given image.
protected voidprocessWarningOccurred(int imageIndex, String warning)
Notifies all installed warning listeners, by calling their warningOccurred methods, that a warning message has been raised.
protected voidprocessWarningOccurred(int imageIndex, String baseName, String keyword)
Notify all installed warning listeners, by calling their warningOccurred methods, that a warning message has been raised.
protected voidprocessWriteAborted()
Notifies all installed write progress listeners that image loading has been aborted by calling their writeAborted methods.
voidremoveAllIIOWriteProgressListeners()
Uninstall all write progress listeners.
voidremoveAllIIOWriteWarningListeners()
Uninstall all write warning listeners.
voidremoveIIOWriteProgressListener(IIOWriteProgressListener listener)
Uninstall the given write progress listener.
voidremoveIIOWriteWarningListener(IIOWriteWarningListener listener)
Uninstall the given write warning listener.
voidremoveImage(int imageIndex)
Remove the image at the specified index from the output stream.
voidreplaceImageMetadata(int imageIndex, IIOMetadata imageMetadata)
Replace the metadata associated with the image at the given index.
voidreplacePixels(RenderedImage image, ImageWriteParam param)
Replace a region of an image in the output stream with a portion of the given rendered image.
voidreplacePixels(Raster raster, ImageWriteParam param)
Replace a region of an image in the output stream with a portion of the given raster data.
voidreplaceStreamMetadata(IIOMetadata streamMetadata)
Replace the metadata associated with this image stream.
voidreset()
Reset this writer's internal state.
voidsetLocale(Locale locale)
Set the current locale or use the default locale.
voidsetOutput(Object output)
Set the output destination of the given object.
abstract voidwrite(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param)
Write an image stream, including thumbnails and metadata to the output stream.
voidwrite(RenderedImage image)
Write a rendered image to the output stream.
voidwrite(IIOImage image)
Write a image data, metadata and thumbnails to the output stream.
voidwriteInsert(int imageIndex, IIOImage image, ImageWriteParam param)
Insert an image into the output stream.
voidwriteToSequence(IIOImage image, ImageWriteParam param)
Write a sequence of images, including thumbnails and metadata, to the output stream.

Field Detail

availableLocales

protected Locale[] availableLocales
All locales available for localization of warning messages, or null if localization is not supported.

locale

protected Locale locale
The current locale used to localize warning messages, or null if no locale has been set.

originatingProvider

protected ImageWriterSpi originatingProvider
The image writer SPI that instantiated this writer.

output

protected Object output
An ImageInputStream to which image data is written.

progressListeners

protected List<IIOWriteProgressListener> progressListeners
A list of installed progress listeners. Initially null, meaning no installed listeners.

warningListeners

protected List<IIOWriteWarningListener> warningListeners
A list of installed warning listeners. Initially null, meaning no installed listeners.

warningLocales

protected List<Locale> warningLocales
A list of warning locales corresponding with the list of installed warning listeners. Initially null, meaning no locales.

Constructor Detail

ImageWriter

protected ImageWriter(ImageWriterSpi originatingProvider)
Construct an image writer.

Parameters: originatingProvider the provider that is constructing this image writer, or null

Method Detail

abort

public void abort()
Request that writing be aborted. The unwritten portions of the destination image will be undefined. Writers should clear the abort flag before starting a write operation, then poll it periodically during the write operation.

abortRequested

protected boolean abortRequested()
Check if the abort flag is set.

Returns: true if the current write operation should be aborted, false otherwise

addIIOWriteProgressListener

public void addIIOWriteProgressListener(IIOWriteProgressListener listener)
Install a write progress listener. This method will return immediately if listener is null.

Parameters: listener a write progress listener or null

addIIOWriteWarningListener

public void addIIOWriteWarningListener(IIOWriteWarningListener listener)
Install a write warning listener. This method will return immediately if listener is null. Warning messages sent to this listener will be localized using the current locale. If the current locale is null then this writer will select a sensible default.

Parameters: listener a write warning listener

canInsertEmpty

public boolean canInsertEmpty(int imageIndex)
Check whether a new empty image can be inserted at the given frame index. Pixel values may be filled in later using the replacePixels methods. Indices greater than the insertion index will be incremented. If imageIndex is -1, the image will be appended at the end of the current image list.

Parameters: imageIndex the frame index

Returns: true if an empty image can be inserted at imageIndex, false otherwise

Throws: IllegalStateException if output is null IndexOutOfBoundsException if imageIndex is less than -1 or greater than the last index in the current image list IOException if a write error occurs

canInsertImage

public boolean canInsertImage(int imageIndex)
Check whether an image can be inserted at the given frame index. Indices greater than the insertion index will be incremented. If imageIndex is -1, the image will be appended at the end of the current image list.

Parameters: imageIndex the frame index

Returns: true if an image can be inserted at imageIndex, false otherwise

Throws: IllegalStateException if output is null IndexOutOfBoundsException if imageIndex is less than -1 or greater than the last index in the current image list IOException if a write error occurs

canRemoveImage

public boolean canRemoveImage(int imageIndex)
Check whether an image can be removed from the given frame index. Indices greater than the removal index will be decremented.

Parameters: imageIndex the frame index

Returns: true if an image can be removed from imageIndex, false otherwise

Throws: IllegalStateException if output is null IndexOutOfBoundsException if imageIndex is less than 0 or greater than the last index in the current image list IOException if a write error occurs

canReplaceImageMetadata

public boolean canReplaceImageMetadata(int imageIndex)
Check whether the metadata associated the image at the given frame index can be replaced.

Parameters: imageIndex the frame index

Returns: true if the metadata associated with the image at imageIndex can be replaced, false otherwise

Throws: IllegalStateException if output is null IndexOutOfBoundsException if imageIndex is less than 0 or greater than the last index in the current image list IOException if a write error occurs

canReplacePixels

public boolean canReplacePixels(int imageIndex)
Check whether the pixels within the image at the given index can be replaced.

Parameters: imageIndex the frame index

Returns: true if the pixels in the image at imageIndex can be replaced, false otherwise

Throws: IllegalStateException if output is null IndexOutOfBoundsException if imageIndex is less than 0 or greater than the last index in the current image list IOException if a write error occurs

canReplaceStreamMetadata

public boolean canReplaceStreamMetadata()
Check whether the metadata associated the entire image stream can be replaced.

Returns: true if the stream metadata can be replaced, false otherwise

Throws: IllegalStateException if output is null IOException if a write error occurs

canWriteEmpty

public boolean canWriteEmpty()
Check whether an entire empty image, including empty metadata and empty thumbnails, can be written to the output stream, leaving pixel values to be filled in later using the replacePixels methods.

Returns: true if an entire empty image can be written before its contents are filled in, false otherwise

Throws: IllegalStateException if output is null IOException if a write error occurs

canWriteRasters

public boolean canWriteRasters()
Check if IIOImages containing raster data are supported.

Returns: true if raster IIOImages are supported, false otherwise

canWriteSequence

public boolean canWriteSequence()
Check if an image can be appended at the end of the current list of images even if prior images have already been written.

Returns: true if sequences of images can be written, false otherwise

clearAbortRequest

protected void clearAbortRequest()
Clear the abort flag.

convertImageMetadata

public abstract IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)
Convert IIOMetadata from an input reader format, returning an IIOMetadata suitable for use by an image writer. The ImageTypeSpecifier specifies the destination image type. An optional ImageWriteParam argument is available in case the image writing parameters affect the metadata conversion.

Parameters: inData the metadata coming from an image reader imageType the output image type of the writer param the image writing parameters or null

Returns: the converted metadata that should be used by the image writer, or null if this ImageTranscoder has no knowledge of the input metadata

Throws: IllegalArgumentException if either inData or imageType is null

convertStreamMetadata

public abstract IIOMetadata convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
Convert IIOMetadata from an input stream format, returning an IIOMetadata suitable for use by an image writer. An optional ImageWriteParam argument is available in case the image writing parameters affect the metadata conversion.

Parameters: inData the metadata coming from an input image stream param the image writing parameters or null

Returns: the converted metadata that should be used by the image writer, or null if this ImageTranscoder has no knowledge of the input metadata

Throws: IllegalArgumentException if inData is null

dispose

public void dispose()
Releases any resources allocated to this object. Subsequent calls to methods on this object will produce undefined results. The default implementation does nothing; subclasses should use this method ensure that native resources are released.

endInsertEmpty

public void endInsertEmpty()
Complete inserting an empty image in the output stream.

Throws: IllegalStateException if output is null UnsupportedOperationException if inserting empty images is not supported IllegalArgumentException if a call to prepareInsertEmpty was not called previous to this method being called (a sequence of prepareInsertEmpty calls must be terminated by a call to endInsertEmpty) IllegalArgumentException if prepareWriteEmpty was called before this method being called (without a terminating call to endWriteEmpty) IllegalArgumentException if prepareReplacePixels was called before this method being called (without a terminating call to endReplacePixels) IOException if a write error occurs

endReplacePixels

public void endReplacePixels()
Complete replacing pixels in an image in the output stream.

Throws: IllegalStateException if output is null UnsupportedOperationException if replacing pixels is not supported by this writer IllegalArgumentException if prepareReplacePixels was not called before this method being called IOException if a write error occurs

endWriteEmpty

public void endWriteEmpty()
Complete writing an empty image to the image output stream.

Throws: IllegalStateException if output is null UnsupportedOperationException if writing empty images is not supported IllegalArgumentException if a call to prepareWriteEmpty was not called previous to this method being called (a sequence of prepareWriteEmpty calls must be terminated by a call to endWriteEmpty) IllegalArgumentException if prepareInsertEmpty was called before this method being called (without a terminating call to endInsertEmpty) IllegalArgumentException if prepareReplacePixels was called before this method being called (without a terminating call to endReplacePixels) IOException if a write error occurs

endWriteSequence

public void endWriteSequence()
Complete writing a sequence of images to the output stream. This method may patch header data and write out footer data.

Throws: IllegalStateException if output is null IllegalStateException if prepareWriteSequence has not been called UnsupportedOperationException if writing a sequence of images is not supported IOException if a write error occurs

getAvailableLocales

public Locale[] getAvailableLocales()
Retrieve the available locales. Return null if no locales are available or a clone of availableLocales.

Returns: an array of locales or null

getDefaultImageMetadata

public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param)
Get a metadata object appropriate for encoding an image specified by the given image type specifier and optional image write parameters.

Parameters: imageType an image type specifier param image writing parameters, or null

Returns: a metadata object appropriate for encoding an image of the given type with the given parameters

getDefaultStreamMetadata

public abstract IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)
Get a metadata object appropriate for encoding the default image type handled by this writer, optionally considering image write parameters.

Parameters: param image writing parameters, or null

Returns: a metadata object appropriate for encoding an image of the default type with the given parameters

getDefaultWriteParam

public ImageWriteParam getDefaultWriteParam()
Retrieve the default write parameters for this writer's image format. The default implementation returns new ImageWriteParam().

Returns: image writing parameters

getLocale

public Locale getLocale()
Get this writer's locale. null is returned if the locale has not been set.

Returns: this writer's locale, or null

getNumThumbnailsSupported

public int getNumThumbnailsSupported(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
Get the number of thumbnails supported by this image writer, based on the given image type, image writing parameters, and stream and image metadata. The image writing parameters are optional, in case they affect the number of thumbnails supported.

Parameters: imageType an image type specifier, or null param image writing parameters, or null streamMetadata the metadata associated with this stream, or null imageMetadata the metadata associated with this image, or null

Returns: the number of thumbnails that this writer supports writing or -1 if the given information is insufficient

getOriginatingProvider

public ImageWriterSpi getOriginatingProvider()
Get the ImageWriterSpi that created this writer or null.

Returns: an ImageWriterSpi, or null

getOutput

public Object getOutput()
Get this reader's image output destination. null is returned if the image destination has not been set.

Returns: an image output destination object, or null

getPreferredThumbnailSizes

public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
Get the preferred sizes for thumbnails based on the given image type, image writing parameters, and stream and image metadata. The preferred sizes are returned in pairs of dimension values; the first value in the array is a dimension object representing the minimum thumbnail size, the second value is a dimension object representing a maximum thumbnail size. The writer can select a size within the range given by each pair, or it can ignore these size hints.

Parameters: imageType an image type specifier, or null param image writing parameters, or null streamMetadata the metadata associated with this stream, or null imageMetadata the metadata associated with this image, or null

Returns: an array of dimension pairs whose length is a multiple of 2, or null if there is no preferred size (any size is allowed) or if the size is unknown (insufficient information was provided)

prepareInsertEmpty

public void prepareInsertEmpty(int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)
Start inserting an empty image in the image output stream. All indices after the specified index are incremented. An index of -1 implies that the empty image should be appended to the end of the current image list. The insertion that this method call starts is not complete until endInsertEmpty is called. prepareInsertEmpty cannot be called again until endInsertEmpty is called and calls to prepareWriteEmpty and prepareInsertEmpty may not be intersperced.

Parameters: imageIndex the image index imageType the image type specifier width the image width height the image height imageMetadata the image metadata, or null thumbnails a list of thumbnails, or null param image write parameters, or null

Throws: IllegalStateException if output is null UnsupportedOperationException if inserting empty images is not supported IndexOutOfBoundsException if imageIndex is less than -1 or greater than the last index in the current image list IllegalStateException if a previous call to prepareInsertEmpty was made (without a terminating call to endInsertEmpty) IllegalStateException if a previous call to prepareWriteEmpty was made (without a terminating call to endWriteEmpty) IllegalArgumentException if imageType is null or thumbnails contain non-BufferedImage objects IllegalArgumentException if either width or height is less than 1 IOException if a write error occurs

prepareReplacePixels

public void prepareReplacePixels(int imageIndex, Rectangle region)
Start the replacement of pixels within an image in the output stream. Output pixels will be clipped to lie within region.

Parameters: imageIndex the index of the image in which pixels are being replaced region the rectangle to which to limit pixel replacement

Throws: IllegalStateException if output is null UnsupportedOperationException if replacing pixels is not supported IndexOutOfBoundsException if imageIndex is less than 0 or greater than the last index in the current image list IllegalStateException if a previous call to prepareReplacePixels was made (without a terminating call to endReplacePixels) IllegalArgumentException if either region.width or region.height is less than 1, or if region is null IOException if a write error occurs

prepareWriteEmpty

public void prepareWriteEmpty(IIOMetadata streamMetadata, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)
Start writing an empty image to the end of the image output stream. The writing that this method call starts is not complete until endWriteEmpty is called. prepareWritetEmpty cannot be called again until endWriteEmpty is called and calls to prepareWriteEmpty and prepareInsertEmpty may not be intersperced.

Parameters: streamMetadata metadata associated with the stream, or null imageType the image type specifier width the image width height the image height imageMetadata the image metadata, or null thumbnails a list of thumbnails, or null param image write parameters, or null

Throws: IllegalStateException if output is null UnsupportedOperationException if writing empty images is not supported IndexOutOfBoundsException if imageIndex is less than -1 or greater than the last index in the current image list IllegalStateException if a previous call to prepareInsertEmpty was made (without a terminating call to endInsertEmpty) IllegalStateException if a previous call to prepareWriteEmpty was made (without a terminating call to endWriteEmpty) IllegalArgumentException if imageType is null or thumbnails contain non-BufferedImage objects IllegalArgumentException if either width or height is less than 1 IOException if a write error occurs

prepareWriteSequence

public void prepareWriteSequence(IIOMetadata streamMetadata)
Start the writing of a sequence of images.

Parameters: streamMetadata the stream metadata, or null

Throws: IllegalStateException if output is null UnsupportedOperationException if writing sequences of images is not supported IOException if a write error occurs

processImageComplete

protected void processImageComplete()
Notifies all installed write progress listeners that image loading has completed by calling their imageComplete methods.

processImageProgress

protected void processImageProgress(float percentageDone)
Notifies all installed write progress listeners that a certain percentage of the image has been loaded, by calling their imageProgress methods.

Parameters: percentageDone the percentage of image data that has been loaded

processImageStarted

protected void processImageStarted(int imageIndex)
Notifies all installed write progress listeners, by calling their imageStarted methods, that image loading has started on the given image.

Parameters: imageIndex the frame index of the image that has started loading

processThumbnailComplete

protected void processThumbnailComplete()
Notifies all installed write progress listeners, by calling their thumbnailComplete methods, that a thumbnail has completed loading.

processThumbnailProgress

protected void processThumbnailProgress(float percentageDone)
Notifies all installed write progress listeners that a certain percentage of a thumbnail has been loaded, by calling their thumbnailProgress methods.

Parameters: percentageDone the percentage of thumbnail data that has been loaded

processThumbnailStarted

protected void processThumbnailStarted(int imageIndex, int thumbnailIndex)
Notifies all installed write progress listeners, by calling their imageStarted methods, that thumbnail loading has started on the given thumbnail of the given image.

Parameters: imageIndex the frame index of the image one of who's thumbnails has started loading thumbnailIndex the index of the thumbnail that has started loading

processWarningOccurred

protected void processWarningOccurred(int imageIndex, String warning)
Notifies all installed warning listeners, by calling their warningOccurred methods, that a warning message has been raised.

Parameters: imageIndex the index of the image that was being written when the warning was raised warning the warning message

Throws: IllegalArgumentException if warning is null

processWarningOccurred

protected void processWarningOccurred(int imageIndex, String baseName, String keyword)
Notify all installed warning listeners, by calling their warningOccurred methods, that a warning message has been raised. The warning message is retrieved from a resource bundle, using the given basename and keyword.

Parameters: imageIndex the index of the image that was being written when the warning was raised baseName the basename of the resource from which to retrieve the warning message keyword the keyword used to retrieve the warning from the resource bundle

Throws: IllegalArgumentException if either baseName or keyword is null IllegalArgumentException if no resource bundle is found using baseName IllegalArgumentException if the given keyword produces no results from the resource bundle IllegalArgumentException if the retrieved object is not a String

processWriteAborted

protected void processWriteAborted()
Notifies all installed write progress listeners that image loading has been aborted by calling their writeAborted methods.

removeAllIIOWriteProgressListeners

public void removeAllIIOWriteProgressListeners()
Uninstall all write progress listeners.

removeAllIIOWriteWarningListeners

public void removeAllIIOWriteWarningListeners()
Uninstall all write warning listeners.

removeIIOWriteProgressListener

public void removeIIOWriteProgressListener(IIOWriteProgressListener listener)
Uninstall the given write progress listener.

Parameters: listener the listener to remove

removeIIOWriteWarningListener

public void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
Uninstall the given write warning listener.

Parameters: listener the listener to remove

removeImage

public void removeImage(int imageIndex)
Remove the image at the specified index from the output stream.

Parameters: imageIndex the frame index from which to remove the image

Throws: IllegalStateException if output is null UnsupportedOperationException if removing this image is not supported IndexOutOfBoundsException if imageIndex is less than 0 or greater than the last index in the current image list IOException if a write error occurs

replaceImageMetadata

public void replaceImageMetadata(int imageIndex, IIOMetadata imageMetadata)
Replace the metadata associated with the image at the given index.

Parameters: imageIndex the index of the image whose metadata should be replaced imageMetadata the metadata, or null

Throws: IllegalStateException if output is null UnsupportedOperationException if replacing this image's metadata is not supported IndexOutOfBoundsException if imageIndex is less than 0 or greater than the last index in the current image list IOException if a write error occurs

replacePixels

public void replacePixels(RenderedImage image, ImageWriteParam param)
Replace a region of an image in the output stream with a portion of the given rendered image. The image data must be of the same type as that in the output stream. The destination region is given by the image writing parameters and the source region is the one given to prepareReplacePixels.

Parameters: image the rendered image with which to overwrite the image region in the stream param the image writing parameters

Throws: IllegalStateException if output is null UnsupportedOperationException if replacing pixels is not supported IllegalStateException if prepareReplacePixels was not called before this method was called IllegalArgumentException if image is null or if param is null or if the overlap of the source and destination regions contains no pixels or if the image types differ and no conversion is possible IOException if a write error occurs

replacePixels

public void replacePixels(Raster raster, ImageWriteParam param)
Replace a region of an image in the output stream with a portion of the given raster data. The image data must be of the same type as that in the output stream. The destination region is given by the image writing parameters and the source region is the one given to prepareReplacePixels.

Parameters: raster the raster data with which to overwrite the image region in the stream param the image writing parameters

Throws: IllegalStateException if output is null UnsupportedOperationException if replacing pixels is not supported IllegalStateException if prepareReplacePixels was not called before this method was called UnsupportedOperationException if raster data is not supported IllegalArgumentException if raster is null or if param is null or if the overlap of the source and destination regions contains no pixels or if the image types differ and no conversion is possible IOException if a write error occurs

replaceStreamMetadata

public void replaceStreamMetadata(IIOMetadata streamMetadata)
Replace the metadata associated with this image stream.

Parameters: streamMetadata the stream metadata, or null

Throws: IllegalStateException if output is null UnsupportedOperationException if replacing the stream metadata is not supported IOException if a write error occurs

reset

public void reset()
Reset this writer's internal state.

setLocale

public void setLocale(Locale locale)
Set the current locale or use the default locale.

Parameters: locale the locale to set, or null

setOutput

public void setOutput(Object output)
Set the output destination of the given object. The output destination must be set before many methods can be called on this writer. (see all ImageWriter methods that throw IllegalStateException). If input is null then the current input source will be removed.

Parameters: input the output destination object

Throws: IllegalArgumentException if input is not a valid input source for this writer and is not an ImageInputStream

write

public abstract void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param)
Write an image stream, including thumbnails and metadata to the output stream. The output must have been set prior to this method being called. Metadata associated with the stream may be supplied, or it can be left null. IIOImage may contain raster data if this writer supports rasters, or it will contain a rendered image. Thumbnails are resized if need be. Image writing parameters may be specified to affect writing, or may be left null.

Parameters: streamMetadata metadata associated with this stream, or null image an IIOImage containing image data, metadata and thumbnails to be written param image writing parameters, or null

Throws: IllegalStateException if output is null UnsupportedOperationException if image contains raster data but this writer does not support rasters IllegalArgumentException if image is null IOException if a write error occurs

write

public void write(RenderedImage image)
Write a rendered image to the output stream.

Parameters: image a rendered image containing image data to be written

Throws: IllegalStateException if output is null IllegalArgumentException if image is null IOException if a write error occurs

write

public void write(IIOImage image)
Write a image data, metadata and thumbnails to the output stream.

Parameters: image image data, metadata and thumbnails to be written

Throws: IllegalStateException if output is null UnsupportedOperationException if image contains raster data but this writer does not support rasters IllegalArgumentException if image is null IOException if a write error occurs

writeInsert

public void writeInsert(int imageIndex, IIOImage image, ImageWriteParam param)
Insert an image into the output stream. Indices greater than the specified index are incremented accordingly. Specifying an index of -1 causes the image to be appended at the end of the current image list.

Parameters: imageIndex the frame index at which to insert the image image the image data, metadata and thumbnails to be inserted the image write parameters, or null

Throws: IllegalStateException if output is null UnsupportedOperationException if image insertion is not supported IllegalArgumentException if image is null IndexOutOfBoundsException if imageIndex is less than -1 or greater than the last index in the current image list UnsupportedOperationException if image contains raster data but this writer does not support rasters IOException if a write error occurs

writeToSequence

public void writeToSequence(IIOImage image, ImageWriteParam param)
Write a sequence of images, including thumbnails and metadata, to the output stream. The output must have been set prior to this method being called. Metadata associated with the stream may be supplied, or it can be left null. IIOImage may contain raster data if this writer supports rasters, or it will contain a rendered image. Thumbnails are resized if need be. Image writing parameters may be specified to affect writing, or may be left null.

Parameters: streamMetadata metadata associated with this stream, or null image an IIOImage containing image data, metadata and thumbnails to be written param image writing parameters, or null

Throws: IllegalStateException if output is null UnsupportedOperationException if writing sequences of images is not supported IllegalArgumentException if image is null UnsupportedOperationException if image contains raster data but this writer does not support rasters IOException if a write error occurs