ImageDecoder
Date: 2016-04-28

org.apache.xmlgraphics.image.codec.util

## Interface ImageDecoder

- All Known Implementing Classes:
    ImageDecoderImpl, PNGImageDecoder, TIFFImageDecoder

      public interface ImageDecoder

  An interface describing objects that transform an InputStream into a BufferedImage or Raster.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `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.

- - ### Method Detail

    - #### getParam

          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.

    - #### setParam

          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.

    - #### getInputStream

          SeekableStream getInputStream()

      Returns the SeekableStream associated with this ImageDecoder.

    - #### getNumPages

          int getNumPages()
                          throws java.io.IOException

      Returns the number of pages present in the current stream.
      Throws:
        `java.io.IOException`

    - #### decodeAsRaster

          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.
      Throws:
        `java.io.IOException`

    - #### decodeAsRaster

          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.
      Parameters:
        `page` - The page to be decoded.
      Throws:
        `java.io.IOException`

    - #### decodeAsRenderedImage

          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.
      Throws:
        `java.io.IOException`

    - #### decodeAsRenderedImage

          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.
      Parameters:
        `page` - The page to be decoded.
      Throws:
        `java.io.IOException`