javax.imageio
public abstract class ImageWriter extends Object implements ImageTranscoder
Field Summary | |
---|---|
protected Locale[] | availableLocales
All locales available for localization of warning messages, or
null if localization is not supported. |
protected Locale | locale
The current locale used to localize warning messages, or null if
no locale has been set. |
protected ImageWriterSpi | originatingProvider
The image writer SPI that instantiated this writer. |
protected Object | output
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 | |
---|---|
void | abort()
Request that writing be aborted. |
protected boolean | abortRequested()
Check if the abort flag is set.
|
void | addIIOWriteProgressListener(IIOWriteProgressListener listener)
Install a write progress listener. |
void | addIIOWriteWarningListener(IIOWriteWarningListener listener)
Install a write warning listener. |
boolean | canInsertEmpty(int imageIndex)
Check whether a new empty image can be inserted at the given
frame index. |
boolean | canInsertImage(int imageIndex)
Check whether an image can be inserted at the given frame index.
|
boolean | canRemoveImage(int imageIndex)
Check whether an image can be removed from the given frame index.
|
boolean | canReplaceImageMetadata(int imageIndex)
Check whether the metadata associated the image at the given
frame index can be replaced.
|
boolean | canReplacePixels(int imageIndex)
Check whether the pixels within the image at the given index can
be replaced.
|
boolean | canReplaceStreamMetadata()
Check whether the metadata associated the entire image stream can
be replaced.
|
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.
|
boolean | canWriteRasters()
Check if IIOImages containing raster data are supported.
|
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.
|
protected void | clearAbortRequest()
Clear the abort flag. |
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.
|
abstract IIOMetadata | convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
Convert IIOMetadata from an input stream format, returning an
IIOMetadata suitable for use by an image writer.
|
void | dispose()
Releases any resources allocated to this object. |
void | endInsertEmpty()
Complete inserting an empty image in the output stream.
|
void | endReplacePixels()
Complete replacing pixels in an image in the output stream.
|
void | endWriteEmpty()
Complete writing an empty image to the image output stream.
|
void | endWriteSequence()
Complete writing a sequence of images to the output stream. |
Locale[] | getAvailableLocales()
Retrieve the available locales. |
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.
|
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.
|
ImageWriteParam | getDefaultWriteParam()
Retrieve the default write parameters for this writer's image
format.
|
Locale | getLocale()
Get this writer's locale. null is returned if the locale has not
been set.
|
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. |
ImageWriterSpi | getOriginatingProvider()
Get the ImageWriterSpi that created this writer or null.
|
Object | getOutput()
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.
|
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. |
void | prepareReplacePixels(int imageIndex, Rectangle region)
Start the replacement of pixels within an image in the output
stream. |
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.
|
void | prepareWriteSequence(IIOMetadata streamMetadata)
Start the writing of a sequence of images.
|
protected void | processImageComplete()
Notifies all installed write progress listeners that image
loading has completed by calling their imageComplete methods. |
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.
|
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.
|
protected void | processThumbnailComplete()
Notifies all installed write progress listeners, by calling their
thumbnailComplete methods, that a thumbnail has completed
loading. |
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.
|
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.
|
protected void | processWarningOccurred(int imageIndex, String warning)
Notifies all installed warning listeners, by calling their
warningOccurred methods, that a warning message has been raised.
|
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.
|
protected void | processWriteAborted()
Notifies all installed write progress listeners that image
loading has been aborted by calling their writeAborted methods. |
void | removeAllIIOWriteProgressListeners()
Uninstall all write progress listeners. |
void | removeAllIIOWriteWarningListeners()
Uninstall all write warning listeners. |
void | removeIIOWriteProgressListener(IIOWriteProgressListener listener)
Uninstall the given write progress listener.
|
void | removeIIOWriteWarningListener(IIOWriteWarningListener listener)
Uninstall the given write warning listener.
|
void | removeImage(int imageIndex)
Remove the image at the specified index from the output stream.
|
void | replaceImageMetadata(int imageIndex, IIOMetadata imageMetadata)
Replace the metadata associated with the image at the given
index.
|
void | replacePixels(RenderedImage image, ImageWriteParam param)
Replace a region of an image in the output stream with a portion
of the given rendered image. |
void | replacePixels(Raster raster, ImageWriteParam param)
Replace a region of an image in the output stream with a portion
of the given raster data. |
void | replaceStreamMetadata(IIOMetadata streamMetadata)
Replace the metadata associated with this image stream.
|
void | reset()
Reset this writer's internal state. |
void | setLocale(Locale locale)
Set the current locale or use the default locale.
|
void | setOutput(Object output)
Set the output destination of the given object. |
abstract void | write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param)
Write an image stream, including thumbnails and metadata to the
output stream. |
void | write(RenderedImage image)
Write a rendered image to the output stream.
|
void | write(IIOImage image)
Write a image data, metadata and thumbnails to the output stream.
|
void | writeInsert(int imageIndex, IIOImage image, ImageWriteParam param)
Insert an image into the output stream. |
void | writeToSequence(IIOImage image, ImageWriteParam param)
Write a sequence of images, including thumbnails and metadata, to
the output stream. |
Parameters: originatingProvider the provider that is constructing this image writer, or null
Returns: true if the current write operation should be aborted, false otherwise
Parameters: listener a write progress listener or null
Parameters: listener a write warning listener
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
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
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
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
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
Returns: true if the stream metadata can be replaced, false otherwise
Throws: IllegalStateException if output is null IOException if a write error occurs
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
Returns: true if raster IIOImages are supported, false otherwise
Returns: true if sequences of images can be written, false otherwise
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
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
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
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
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
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
Returns: an array of locales or null
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
Parameters: param image writing parameters, or null
Returns: a metadata object appropriate for encoding an image of the default type with the given parameters
Returns: image writing parameters
Returns: this writer's locale, or null
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
Returns: an ImageWriterSpi, or null
Returns: an image output destination object, or null
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)
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
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
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
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
Parameters: percentageDone the percentage of image data that has been loaded
Parameters: imageIndex the frame index of the image that has started loading
Parameters: percentageDone the percentage of thumbnail data that has been loaded
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
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
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
Parameters: listener the listener to remove
Parameters: listener the listener to remove
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
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
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
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
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
Parameters: locale the locale to set, or null
Parameters: input the output destination object
Throws: IllegalArgumentException if input is not a valid input source for this writer and is not an ImageInputStream
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
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
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
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
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