📄 imagewriter.java
字号:
/** * 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. * * @param streamMetadata metadata associated with this stream, or * null * @param image an IIOImage containing image data, metadata and * thumbnails to be written * @param param image writing parameters, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if image contains raster * data but this writer does not support rasters * @exception IllegalArgumentException if image is null * @exception IOException if a write error occurs */ public abstract void write (IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) throws IOException; /** * Complete inserting an empty image in the output stream. * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if inserting empty * images is not supported * @exception 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) * @exception IllegalArgumentException if prepareWriteEmpty was * called before this method being called (without a terminating * call to endWriteEmpty) * @exception IllegalArgumentException if prepareReplacePixels was * called before this method being called (without a terminating * call to endReplacePixels) * @exception IOException if a write error occurs */ public void endInsertEmpty () throws IOException { if (!canInsertEmpty(0)) throw new UnsupportedOperationException(); } /** * Complete replacing pixels in an image in the output stream. * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if replacing pixels is * not supported by this writer * @exception IllegalArgumentException if prepareReplacePixels was * not called before this method being called * @exception IOException if a write error occurs */ public void endReplacePixels () throws IOException { if (!canReplacePixels(0)) throw new UnsupportedOperationException(); } /** * Complete writing an empty image to the image output stream. * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if writing empty images * is not supported * @exception 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) * @exception IllegalArgumentException if prepareInsertEmpty was * called before this method being called (without a terminating * call to endInsertEmpty) * @exception IllegalArgumentException if prepareReplacePixels was * called before this method being called (without a terminating * call to endReplacePixels) * @exception IOException if a write error occurs */ public void endWriteEmpty () throws IOException { if (!canWriteEmpty()) throw new UnsupportedOperationException(); } /** * Complete writing a sequence of images to the output stream. This * method may patch header data and write out footer data. * * @exception IllegalStateException if output is null * @exception IllegalStateException if prepareWriteSequence has not * been called * @exception UnsupportedOperationException if writing a sequence of * images is not supported * @exception IOException if a write error occurs */ public void endWriteSequence () throws IOException { checkOutputSet(); if (!canWriteSequence()) throw new UnsupportedOperationException(); } /** * 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. * * @param imageIndex the image index * @param imageType the image type specifier * @param width the image width * @param height the image height * @param imageMetadata the image metadata, or null * @param thumbnails a list of thumbnails, or null * @param param image write parameters, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if inserting empty * images is not supported * @exception IndexOutOfBoundsException if imageIndex is less than * -1 or greater than the last index in the current image list * @exception IllegalStateException if a previous call to * prepareInsertEmpty was made (without a terminating call to * endInsertEmpty) * @exception IllegalStateException if a previous call to * prepareWriteEmpty was made (without a terminating call to * endWriteEmpty) * @exception IllegalArgumentException if imageType is null or * thumbnails contain non-BufferedImage objects * @exception IllegalArgumentException if either width or height is * less than 1 * @exception IOException if a write error occurs */ public void prepareInsertEmpty (int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List thumbnails, ImageWriteParam param) throws IOException { if (!canInsertEmpty(imageIndex)) throw new UnsupportedOperationException(); } /** * Start the replacement of pixels within an image in the output * stream. Output pixels will be clipped to lie within region. * * @param imageIndex the index of the image in which pixels are * being replaced * @param region the rectangle to which to limit pixel replacement * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if replacing pixels is * not supported * @exception IndexOutOfBoundsException if imageIndex is less than 0 * or greater than the last index in the current image list * @exception IllegalStateException if a previous call to * prepareReplacePixels was made (without a terminating call to * endReplacePixels) * @exception IllegalArgumentException if either region.width or * region.height is less than 1, or if region is null * @exception IOException if a write error occurs */ public void prepareReplacePixels (int imageIndex, Rectangle region) throws IOException { if (canReplacePixels(imageIndex)) throw new UnsupportedOperationException(); } /** * 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. * * @param streamMetadata metadata associated with the stream, or null * @param imageType the image type specifier * @param width the image width * @param height the image height * @param imageMetadata the image metadata, or null * @param thumbnails a list of thumbnails, or null * @param param image write parameters, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if writing empty images * is not supported * @exception IndexOutOfBoundsException if imageIndex is less than * -1 or greater than the last index in the current image list * @exception IllegalStateException if a previous call to * prepareInsertEmpty was made (without a terminating call to * endInsertEmpty) * @exception IllegalStateException if a previous call to * prepareWriteEmpty was made (without a terminating call to * endWriteEmpty) * @exception IllegalArgumentException if imageType is null or * thumbnails contain non-BufferedImage objects * @exception IllegalArgumentException if either width or height is * less than 1 * @exception IOException if a write error occurs */ public void prepareWriteEmpty (IIOMetadata streamMetadata, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List thumbnails, ImageWriteParam param) throws IOException { if (!canWriteEmpty()) throw new UnsupportedOperationException(); } /** * Start the writing of a sequence of images. * * @param streamMetadata the stream metadata, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if writing sequences of * images is not supported * @exception IOException if a write error occurs */ public void prepareWriteSequence (IIOMetadata streamMetadata) throws IOException { checkOutputSet(); if (!canWriteSequence()) throw new UnsupportedOperationException(); } /** * Remove the image at the specified index from the output stream. * * @param imageIndex the frame index from which to remove the image * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if removing this image * is not supported * @exception IndexOutOfBoundsException if imageIndex is less than 0 * or greater than the last index in the current image list * @exception IOException if a write error occurs */ public void removeImage (int imageIndex) throws IOException { if (!canRemoveImage(imageIndex)) throw new UnsupportedOperationException(); } /** * Replace the metadata associated with the image at the given * index. * * @param imageIndex the index of the image whose metadata should be * replaced * @param imageMetadata the metadata, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if replacing this * image's metadata is not supported * @exception IndexOutOfBoundsException if imageIndex is less than 0 * or greater than the last index in the current image list * @exception IOException if a write error occurs */ public void replaceImageMetadata (int imageIndex, IIOMetadata imageMetadata) throws IOException { if (!canReplaceImageMetadata(imageIndex)) throw new UnsupportedOperationException(); } /** * 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. * * @param image the rendered image with which to overwrite the image * region in the stream * @param param the image writing parameters * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if replacing pixels is * not supported * @exception IllegalStateException if prepareReplacePixels was not * called before this method was called * @exception 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 * @exception IOException if a write error occurs */ public void replacePixels (RenderedImage image, ImageWriteParam param) throws IOException { if (!canReplacePixels(0)) throw new UnsupportedOperationException(); } /** * 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. * * @param raster the raster data with which to overwrite the image * region in the stream * @param param the image writing parameters * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if replacing pixels is * not supported * @exception IllegalStateException if prepareReplacePixels was not * called before this method was called * @exception UnsupportedOperationException if raster data is not * supported * @exception 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 * @exception IOException if a write error occurs */ public void replacePixels (Raster raster, ImageWriteParam param) throws IOException { if (!canReplacePixels(0)) throw new UnsupportedOperationException(); } /** * Replace the metadata associated with this image stream. * * @param streamMetadata the stream metadata, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if replacing the stream * metadata is not supported * @exception IOException if a write error occurs */ public void replaceStreamMetadata (IIOMetadata streamMetadata) throws IOException { if (!canReplaceStreamMetadata()) throw new UnsupportedOperationException(); } /** * Write a rendered image to the output stream. * * @param image a rendered image containing image data to be written * * @exception IllegalStateException if output is null * @exception IllegalArgumentException if image is null * @exception IOException if a write error occurs */ public void write (RenderedImage image) throws IOException { checkOutputSet(); write (null, new IIOImage(image, null, null), null); } /** * Write a image data, metadata and thumbnails to the output stream. * * @param image image data, metadata and thumbnails to be written * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if image contains raster * data but this writer does not support rasters * @exception IllegalArgumentException if image is null * @exception IOException if a write error occurs */ public void write (IIOImage image) throws IOException { checkOutputSet(); write (null, image, null); } /** * 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. * * @param imageIndex the frame index at which to insert the image * @param image the image data, metadata and thumbnails to be * inserted * @param the image write parameters, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if image insertion is * not supported * @exception IllegalArgumentException if image is null * @exception IndexOutOfBoundsException if imageIndex is less than * -1 or greater than the last index in the current image list * @exception UnsupportedOperationException if image contains raster * data but this writer does not support rasters * @exception IOException if a write error occurs */ public void writeInsert (int imageIndex, IIOImage image, ImageWriteParam param) throws IOException { if (!canInsertImage(imageIndex)) throw new UnsupportedOperationException(); } /** * 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. * * @param streamMetadata metadata associated with this stream, or * null * @param image an IIOImage containing image data, metadata and * thumbnails to be written * @param param image writing parameters, or null * * @exception IllegalStateException if output is null * @exception UnsupportedOperationException if writing sequences of * images is not supported * @exception IllegalArgumentException if image is null * @exception UnsupportedOperationException if image contains raster * data but this writer does not support rasters * @exception IOException if a write error occurs */ public void writeToSequence (IIOImage image, ImageWriteParam param) throws IOException { if (!canWriteSequence()) throw new UnsupportedOperationException(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -