## org.apache.batik.ext.awt.image.codec
Class ImageDecoderImpl

    java.lang.Object
      org.apache.batik.ext.awt.image.codec.ImageDecoderImpl

All Implemented Interfaces:
  ImageDecoder

Direct Known Subclasses:
  PNGImageDecoder, TIFFImageDecoder

public abstract class ImageDecoderImpl
extends java.lang.Object
implements ImageDecoder

A partial implementation of the `ImageDecoder` interface useful for subclassing.

Field Summary
`protected SeekableStream` `input` The `SeekableStream` associcted with this `ImageEncoder`.
`protected ImageDecodeParam` `param` The `ImageDecodeParam` object associated with this `ImageEncoder`.

Constructor Summary
`ImageDecoderImpl(java.io.InputStream input, ImageDecodeParam param)` Constructs an `ImageDecoderImpl` with a given `InputStream` and `ImageDecodeParam` instance.
`ImageDecoderImpl(SeekableStream input, ImageDecodeParam param)` Constructs an `ImageDecoderImpl` with a given `SeekableStream` and `ImageDecodeParam` instance.

Method Summary
`java.awt.image.Raster` `decodeAsRaster()` Returns a `Raster` that contains the decoded contents of the `SeekableStream` associated with this `ImageDecoder`.
`java.awt.image.Raster` `decodeAsRaster(int page)` Returns a `Raster` that contains the decoded contents of the `SeekableStream` associated with this `ImageDecoder`.
`java.awt.image.RenderedImage` `decodeAsRenderedImage()` Returns a `RenderedImage` that contains the decoded contents of the `SeekableStream` associated with this `ImageDecoder`.
`abstract java.awt.image.RenderedImage` `decodeAsRenderedImage(int page)` Returns a `RenderedImage` that contains the decoded contents of the `SeekableStream` associated with this `ImageDecoder`.
`SeekableStream` `getInputStream()` Returns the `SeekableStream` associated with this `ImageDecoder`.
`int` `getNumPages()` Returns the number of pages present in the current stream.
`ImageDecodeParam` `getParam()` Returns the current parameters as an instance of the `ImageDecodeParam` interface.
`void` `setParam(ImageDecodeParam param)` Sets the current parameters to an instance of the `ImageDecodeParam` interface.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### input

    protected SeekableStream input

  The `SeekableStream` associcted with this `ImageEncoder`.

### param

    protected ImageDecodeParam param

  The `ImageDecodeParam` object associated with this `ImageEncoder`.

Constructor Detail

### ImageDecoderImpl

    public ImageDecoderImpl(SeekableStream input,
                            ImageDecodeParam param)

  Constructs an `ImageDecoderImpl` with a given `SeekableStream` and `ImageDecodeParam` instance.

### ImageDecoderImpl

    public ImageDecoderImpl(java.io.InputStream input,
                            ImageDecodeParam param)

  Constructs an `ImageDecoderImpl` with a given `InputStream` and `ImageDecodeParam` instance. The `input` parameter will be used to construct a `ForwardSeekableStream`; if the ability to seek backwards is required, the caller should construct an instance of `SeekableStream` and make use of the other contructor.

Method Detail

### getParam

    public ImageDecodeParam getParam()

  Returns the current parameters as an instance of the `ImageDecodeParam` interface. Concrete implementations of this interface will return corresponding concrete implementations of the `ImageDecodeParam` interface. For example, a `JPEGImageDecoder` will return an instance of `JPEGDecodeParam`.

  Specified by:
    `getParam` in interface `ImageDecoder`

### setParam

    public void setParam(ImageDecodeParam param)

  Sets the current parameters to an instance of the `ImageDecodeParam` interface. Concrete implementations of `ImageDecoder` may throw a `RuntimeException` if the `param` argument is not an instance of the appropriate subclass or subinterface. For example, a `JPEGImageDecoder` will expect `param` to be an instance of `JPEGDecodeParam`.

  Specified by:
    `setParam` in interface `ImageDecoder`

### getInputStream

    public SeekableStream getInputStream()

  Returns the `SeekableStream` associated with this `ImageDecoder`.

  Specified by:
    `getInputStream` in interface `ImageDecoder`

### getNumPages

    public int getNumPages()
                    throws java.io.IOException

  Returns the number of pages present in the current stream. By default, the return value is 1. Subclasses that deal with multi-page formats should override this method.

  Specified by:
    `getNumPages` in interface `ImageDecoder`
  Throws:
    `java.io.IOException`

### decodeAsRaster

    public java.awt.image.Raster decodeAsRaster()
                                         throws java.io.IOException

  Returns a `Raster` that contains the decoded contents of the `SeekableStream` associated with this `ImageDecoder`. Only the first page of a multi-page image is decoded.

  Specified by:
    `decodeAsRaster` in interface `ImageDecoder`
  Throws:
    `java.io.IOException`

### decodeAsRaster

    public java.awt.image.Raster decodeAsRaster(int page)
                                         throws java.io.IOException

  Returns a `Raster` that contains the decoded contents of the `SeekableStream` associated with this `ImageDecoder`. The given page of a multi-page image is decoded. If the page does not exist, an IOException will be thrown. Page numbering begins at zero.

  Specified by:
    `decodeAsRaster` in interface `ImageDecoder`
  Parameters:
    `page` - The page to be decoded.
  Throws:
    `java.io.IOException`

### decodeAsRenderedImage

    public java.awt.image.RenderedImage decodeAsRenderedImage()
                                                       throws java.io.IOException

  Returns a `RenderedImage` that contains the decoded contents of the `SeekableStream` associated with this `ImageDecoder`. Only the first page of a multi-page image is decoded.

  Specified by:
    `decodeAsRenderedImage` in interface `ImageDecoder`
  Throws:
    `java.io.IOException`

### decodeAsRenderedImage

    public abstract java.awt.image.RenderedImage decodeAsRenderedImage(int page)
                                                                throws java.io.IOException

  Returns a `RenderedImage` that contains the decoded contents of the `SeekableStream` associated with this `ImageDecoder`. The given page of a multi-page image is decoded. If the page does not exist, an IOException will be thrown. Page numbering begins at zero.

  Specified by:
    `decodeAsRenderedImage` in interface `ImageDecoder`
  Parameters:
    `page` - The page to be decoded.
  Throws:
    `java.io.IOException`

Copyright © 2004 Apache Software Foundation. All Rights Reserved.