com.sun.media.imageio.stream

Class RawImageInputStream

public class RawImageInputStream extends Object implements ImageInputStream

This class defines the content of the ImageInputStream containing several raw images with the same image type: the number of the images, the image type, the offset for the first sample of each image, and the image size information.

ImageInputStream methods are not commented individually. These methods merely forward the call to the ImageInputStream specified when the RawImageInputStream is constructed.

Constructor Summary
RawImageInputStream(ImageInputStream source, ImageTypeSpecifier type, long[] imageOffsets, Dimension[] imageDimensions)
Constructor.
RawImageInputStream(ImageInputStream source, SampleModel sampleModel, long[] imageOffsets, Dimension[] imageDimensions)
Constructor.
RawImageInputStream(ImageInputStream source, InputSource xmlSource)
Constructor.
Method Summary
voidclose()
voidflush()
voidflushBefore(long pos)
intgetBitOffset()
ByteOrdergetByteOrder()
longgetFlushedPosition()
DimensiongetImageDimension(int imageIndex)
Retrieves the dimnsion of the imageIndexth image.
longgetImageOffset(int imageIndex)
Retrieves the image offset of the imageIndexth image.
ImageTypeSpecifiergetImageType()
Retrieves the image type.
intgetNumImages()
Retrieves the number of images in the ImageInputStream.
longgetStreamPosition()
booleanisCached()
booleanisCachedFile()
booleanisCachedMemory()
longlength()
voidmark()
intread()
intread(byte[] b)
intread(byte[] b, int off, int len)
intreadBit()
longreadBits(int numBits)
booleanreadBoolean()
bytereadByte()
voidreadBytes(IIOByteBuffer buf, int len)
charreadChar()
doublereadDouble()
floatreadFloat()
voidreadFully(byte[] b, int off, int len)
voidreadFully(byte[] b)
voidreadFully(short[] s, int off, int len)
voidreadFully(char[] c, int off, int len)
voidreadFully(int[] i, int off, int len)
voidreadFully(long[] l, int off, int len)
voidreadFully(float[] f, int off, int len)
voidreadFully(double[] d, int off, int len)
intreadInt()
StringreadLine()
longreadLong()
shortreadShort()
intreadUnsignedByte()
longreadUnsignedInt()
intreadUnsignedShort()
StringreadUTF()
voidreset()
voidseek(long pos)
voidsetBitOffset(int bitOffset)
voidsetByteOrder(ByteOrder byteOrder)
intskipBytes(int n)
longskipBytes(long n)

Constructor Detail

RawImageInputStream

public RawImageInputStream(ImageInputStream source, ImageTypeSpecifier type, long[] imageOffsets, Dimension[] imageDimensions)
Constructor.

Parameters: source The ImageInputStream containing all the raw images. type The ImageTypeSpecifier for all the images in the stream. imageOffsets The position of the first sample for each image in the stream. imageDimensions The image size for each image in the stream.

Throws: IllegalArgumentException If the sizes of imageOffsets and imageDimensions are different or if either array is null.

RawImageInputStream

public RawImageInputStream(ImageInputStream source, SampleModel sampleModel, long[] imageOffsets, Dimension[] imageDimensions)
Constructor.

This constructor is the same as (ImageInputStream,ImageTypeSpecifier, long[],Dimension[]) except that a SampleModel is supplied instead of an ImageTypeSpecifier. This constructor creates a ColorModel for the supplied SampleModel and then creates an ImageTypeSpecifier.

Suitable ColorModels are guaranteed to exist for all instances of ComponentSampleModel. For 1- and 3- banded SampleModels, the ColorModel will be opaque. For 2- and 4-banded SampleModels, the output will use alpha transparency which is not premultiplied. 1- and 2-banded data will use a grayscale ColorSpace, and 3- and 4-banded data a sRGB ColorSpace. Data with 5 or more bands will use a ColorSpace which satisfies compatibility constraints but is merely a placeholder and does not perform correct color conversion to and from the C.I.E. XYZ and sRGB color spaces.

An instance of DirectColorModel will be created for instances of SinglePixelPackedSampleModel with no more than 4 bands.

An instance of IndexColorModel will be created for instances of MultiPixelPackedSampleModel. The colormap will be a grayscale ramp with 1 << numberOfBits entries ranging from zero to at most 255.

Parameters: source The ImageInputStream containing all the raw images. sampleModel The SampleModel for all the images in the stream. imageOffsets The position of the first sample for each image in the stream. imageDimensions The image size for each image in the stream.

Throws: IllegalArgumentException If sampleModel is null. IllegalArgumentException If the sizes of imageOffsets and imageDimensions are different or if either array is null. IllegalArgumentException If it is not possible to create a ColorModel from the supplied SampleModel.

RawImageInputStream

public RawImageInputStream(ImageInputStream source, InputSource xmlSource)
Constructor. The xmlSource must adhere to the following DTD:
<!DOCTYPE "com_sun_media_imageio_stream_raw_1.0" [

  <!ELEMENT com_sun_media_imageio_stream_raw_1.0
    (byteOrder?, offset?, width?, height?,
     (ComponentSampleModel |
      MultiPixelPackedSampleModel |
      SinglePixelPackedSampleModel),
     (ComponentColorModel |
      DirectColorModel |
      IndexColorModel)?)>

    <!ATTLIST com_sun_media_imageio_stream_raw_1.0
      xmlns CDATA #FIXED "http://com/sun/media/imageio">

  <!ELEMENT byteOrder (#PCDATA)>
    <!-- Byte order of data stream -->
    <!-- Either "NETWORK" or "REVERSE" -->
    <!-- Data type: String -->

  <!ELEMENT offset (#PCDATA)>
    <!-- Byte offset to the image data in the stream -->
    <!-- Data type: long -->

  <!ELEMENT width (#PCDATA)>
    <!-- Image width; default value is SampleModel width -->
    <!-- Data type: int -->

  <!ELEMENT height (#PCDATA)>
    <!-- Image height; default value is SampleModel height -->
    <!-- Data type: int -->

  <!ELEMENT ComponentSampleModel EMPTY>
    <!-- ComponentSampleModel -->

    <!ATTLIST ComponentSampleModel
      dataType (BYTE | USHORT | SHORT | INT | FLOAT | DOUBLE) #REQUIRED
        <!-- Data type: String -->
      w              CDATA #REQUIRED
        <!-- SampleModel width -->
        <!-- Data type: int -->
      h              CDATA #REQUIRED
        <!-- SampleModel height -->
        <!-- Data type: int -->
      pixelStride    CDATA "1"
        <!-- SampleModel pixel stride -->
        <!-- Data type: int -->
      scanlineStride CDATA #REQUIRED
        <!-- SampleModel line stride -->
        <!-- Data type: int -->
      bankIndices    CDATA #IMPLIED
        <!-- SampleModel bank indices -->
        <!-- Data type: int array -->
      bandOffsets    CDATA #REQUIRED>
        <!-- SampleModel band offsets -->
        <!-- Data type: int array -->

  <!ELEMENT MultiPixelPackedSampleModel EMPTY>
    <!-- MultiPixelPackedSampleModel -->

    <!ATTLIST MultiPixelPackedSampleModel
      dataType       (BYTE | USHORT | INT) #REQUIRED
        <!-- Data type: String -->
      w              CDATA #REQUIRED
        <!-- SampleModel width -->
        <!-- Data type: int -->
      h              CDATA #REQUIRED
        <!-- SampleModel height -->
        <!-- Data type: int -->
      numberOfBits   CDATA #REQUIRED
        <!-- Number of bits per pixel -->
        <!-- Data type: int -->
      scanlineStride CDATA #REQUIRED
        <!-- SampleModel line stride -->
        <!-- Data type: int -->
      dataBitOffset  CDATA "0">
        <!-- Offset to first valid bit in a line -->
        <!-- Data type: int -->

  <!ELEMENT SinglePixelPackedSampleModel EMPTY>
    <!-- SinglePixelPackedSampleModel -->

    <!ATTLIST SinglePixelPackedSampleModel
      dataType       (BYTE | USHORT | INT) #REQUIRED
        <!-- Data type: String -->
      w              CDATA #REQUIRED
        <!-- SampleModel width -->
        <!-- Data type: int -->
      h              CDATA #REQUIRED
        <!-- SampleModel height -->
        <!-- Data type: int -->
      scanlineStride CDATA #REQUIRED
        <!-- SampleModel line stride -->
        <!-- Data type: int -->
      bitMasks       CDATA #REQUIRED>
        <!-- Masks indicating RGBA positions -->
        <!-- Data type: int -->

  <!ELEMENT ComponentColorModel EMPTY>
    <!-- ComponentColorModel -->

    <!ATTLIST ComponentColorModel
      colorSpace (CIEXYZ | GRAY | LINEAR_RGB | PYCC | sRGB | URL)
                     #REQUIRED
        <!-- A string representing a predefined ColorSpace or a URI
                representing the location of any ICC profile from which
                a ColorSpace may be created. -->
        <!-- Data type: String -->
      bits                 CDATA          #IMPLIED
        <!-- Number of bits per color component -->
        <!-- Data type: int -->
      hasAlpha             (true | false) #REQUIRED
        <!-- Whether an alpha channel is present -->
        <!-- Data type: boolean -->
      isAlphaPremultiplied (true | false) #REQUIRED
        <!-- Whether any alpha channel is premultiplied -->
        <!-- Data type: boolean -->
      transparency         (BITMASK | OPAQUE | TRANSLUCENT) #REQUIRED
        <!-- The type of transparency -->
      transferType (BYTE | USHORT | SHORT | INT | FLOAT | DOUBLE)
                     #REQUIRED>
        <!-- The data transfer type -->

  <!ELEMENT DirectColorModel EMPTY>
    <!-- DirectColorModel -->

    <!ATTLIST DirectColorModel
      colorSpace           (LINEAR_RGB | sRGB | URL) #IMPLIED
        <!-- A string representing a predefined RGB ColorSpace or a
                URL representing the location of any ICC profile from
                which an RGB ColorSpace may be created. -->
        <!-- Data type: String -->
      bits       CDATA #REQUIRED
        <!-- Number of bits per color component -->
        <!-- Data type: int -->
      rmask      CDATA #REQUIRED
        <!-- Bitmask of the red component -->
        <!-- Data type: int -->
      gmask      CDATA #REQUIRED
        <!-- Bitmask of the grenn component -->
        <!-- Data type: int -->
      bmask      CDATA #REQUIRED
        <!-- Bitmask of the blue component -->
        <!-- Data type: int -->
      amask      CDATA "0">
        <!-- Bitmask of the alpha component -->
        <!-- Data type: int -->

  <!ELEMENT IndexColorModel EMPTY>
    <!-- IndexColorModel -->

    <!ATTLIST IndexColorModel
      bits CDATA #REQUIRED
        <!-- Number of bits per color component -->
        <!-- Data type: int -->
      size CDATA #REQUIRED
        <!-- Number of elements in the colormap -->
        <!-- Data type: int -->
      r    CDATA #REQUIRED
        <!-- Red elements of the colormap -->
        <!-- Data type: byte array -->
      g    CDATA #REQUIRED
        <!-- Green elements of the colormap -->
        <!-- Data type: byte array -->
      b    CDATA #REQUIRED
        <!-- Blue elements of the colormap -->
        <!-- Data type: byte array -->
      a    CDATA #IMPLIED>
        <!-- Alpha elements of the colormap -->
        <!-- Data type: byte array -->
]>

Parameters: source The ImageInputStream containing all the raw images. xmlSource The org.xml.sax.InputSource to provide the xml document in which the stream structure is defined.

Throws: RuntimeException If the parse configuration isn't correct. IllegalArgumentException If the number of "width" elements isn't the same as the number of "height" elements. SAXException If one is thrown in parsing. IOException If one is thrown in parsing, or creating color space from a URL.

Method Detail

close

public void close()

flush

public void flush()

flushBefore

public void flushBefore(long pos)

getBitOffset

public int getBitOffset()

getByteOrder

public ByteOrder getByteOrder()

getFlushedPosition

public long getFlushedPosition()

getImageDimension

public Dimension getImageDimension(int imageIndex)
Retrieves the dimnsion of the imageIndexth image.

Parameters: imageIndex the index of the image of interest.

Returns: the size of the specified image.

Throws: IllegalArgumentException If the provided parameter is out of rangle.

getImageOffset

public long getImageOffset(int imageIndex)
Retrieves the image offset of the imageIndexth image.

Parameters: imageIndex the index of the image of interest.

Returns: the offset in the stream to the specified image.

Throws: IllegalArgumentException If the provided parameter is out of range.

getImageType

public ImageTypeSpecifier getImageType()
Retrieves the image type.

Returns: the image type

getNumImages

public int getNumImages()
Retrieves the number of images in the ImageInputStream.

Returns: the number of image in the stream.

getStreamPosition

public long getStreamPosition()

isCached

public boolean isCached()

isCachedFile

public boolean isCachedFile()

isCachedMemory

public boolean isCachedMemory()

length

public long length()

mark

public void mark()

read

public int read()

read

public int read(byte[] b)

read

public int read(byte[] b, int off, int len)

readBit

public int readBit()

readBits

public long readBits(int numBits)

readBoolean

public boolean readBoolean()

readByte

public byte readByte()

readBytes

public void readBytes(IIOByteBuffer buf, int len)

readChar

public char readChar()

readDouble

public double readDouble()

readFloat

public float readFloat()

readFully

public void readFully(byte[] b, int off, int len)

readFully

public void readFully(byte[] b)

readFully

public void readFully(short[] s, int off, int len)

readFully

public void readFully(char[] c, int off, int len)

readFully

public void readFully(int[] i, int off, int len)

readFully

public void readFully(long[] l, int off, int len)

readFully

public void readFully(float[] f, int off, int len)

readFully

public void readFully(double[] d, int off, int len)

readInt

public int readInt()

readLine

public String readLine()

readLong

public long readLong()

readShort

public short readShort()

readUnsignedByte

public int readUnsignedByte()

readUnsignedInt

public long readUnsignedInt()

readUnsignedShort

public int readUnsignedShort()

readUTF

public String readUTF()

reset

public void reset()

seek

public void seek(long pos)

setBitOffset

public void setBitOffset(int bitOffset)

setByteOrder

public void setByteOrder(ByteOrder byteOrder)

skipBytes

public int skipBytes(int n)

skipBytes

public long skipBytes(long n)