ImageRawStream
Date: 2016-04-28

org.apache.xmlgraphics.image.loader.impl

## Class ImageRawStream

- java.lang.Object
- - org.apache.xmlgraphics.image.loader.impl.AbstractImage
  - - org.apache.xmlgraphics.image.loader.impl.ImageRawStream

- All Implemented Interfaces:
    Image
  Direct Known Subclasses:
    ImageRawCCITTFax, ImageRawEPS, ImageRawJPEG, ImageRawPNG

      public class ImageRawStream
      extends AbstractImage

  This class is an implementation of the Image interface exposing an InputStream for loading the raw/undecoded image.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `ImageRawStream.ByteArrayStreamFactory` InputStream factory that wraps a byte array.
    `static interface` | `ImageRawStream.InputStreamFactory` Represents a factory for InputStream objects.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ImageRawStream(ImageInfo info, ImageFlavor flavor, ImageRawStream.InputStreamFactory streamFactory)` Main constructor.
    `ImageRawStream(ImageInfo info, ImageFlavor flavor, java.io.InputStream in)` Constructor for a simple InputStream as parameter.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.io.InputStream` | `createInputStream()` Returns a new InputStream to access the raw image.
    `ImageFlavor` | `getFlavor()` Returns the flavor of the image.
    `java.lang.String` | `getMimeType()` Returns the MIME type of the stream data.
    `boolean` | `isCacheable()` Indicates whether the Image instance is cacheable in memory.
    `void` | `setInputStreamFactory(ImageRawStream.InputStreamFactory factory)` Sets the InputStreamFactory to be used by this image.
    `void` | `writeTo(java.io.OutputStream out)` Writes the content of the image to an OutputStream.

    - ### Methods inherited from class org.apache.xmlgraphics.image.loader.impl.AbstractImage

      `getColorSpace, getICCProfile, getInfo, getSize, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ImageRawStream

          public ImageRawStream(ImageInfo info,
                        ImageFlavor flavor,
                        ImageRawStream.InputStreamFactory streamFactory)

      Main constructor.
      Parameters:
        `info` - the image info object
        `flavor` - the image flavor for the raw image
        `streamFactory` - the InputStreamFactory that is used to create InputStream instances

    - #### ImageRawStream

          public ImageRawStream(ImageInfo info,
                        ImageFlavor flavor,
                        java.io.InputStream in)

      Constructor for a simple InputStream as parameter.
      Parameters:
        `info` - the image info object
        `flavor` - the image flavor for the raw image
        `in` - the InputStream with the raw content

  - ### Method Detail

    - #### getFlavor

          public ImageFlavor getFlavor()

      Returns the flavor of the image.
      Returns:
        the image flavor

    - #### getMimeType

          public java.lang.String getMimeType()

      Returns the MIME type of the stream data.
      Returns:
        the MIME type

    - #### isCacheable

          public boolean isCacheable()

      Indicates whether the Image instance is cacheable in memory.
      Returns:
        true if the Image is cacheable

    - #### setInputStreamFactory

          public void setInputStreamFactory(ImageRawStream.InputStreamFactory factory)

      Sets the InputStreamFactory to be used by this image. This method allows to replace the original factory.
      Parameters:
        `factory` - the new InputStreamFactory

    - #### createInputStream

          public java.io.InputStream createInputStream()

      Returns a new InputStream to access the raw image.
      Returns:
        the InputStream

    - #### writeTo

          public void writeTo(java.io.OutputStream out)
                       throws java.io.IOException

      Writes the content of the image to an OutputStream. The OutputStream in NOT closed at the end.
      Parameters:
        `out` - the OutputStream
      Throws:
        `java.io.IOException` - if an I/O error occurs