com.sun.jimi.core
Class JimiMultiImageRasterDecoder

java.lang.Object
  |
  +--com.sun.jimi.core.util.ProgressMonitorSupport
        |
        +--com.sun.jimi.core.JimiRasterDecoderSupport
              |
              +--com.sun.jimi.core.JimiMultiImageRasterDecoder

public abstract class JimiMultiImageRasterDecoder
extends JimiRasterDecoderSupport

Base class providing support for JimiDecoders for multi-image formats.


Field Summary
protected  boolean busy
          true while an image is being decoded
protected  com.sun.jimi.core.MImageSeriesDecodingController controller
           
protected  JimiDecodingController currentDecodingController
           
protected  JimiImageHandle currentHandle
           
protected  boolean error
          set to true if an error prevents decoding so that no further operations will be made
 
Fields inherited from class com.sun.jimi.core.JimiRasterDecoderSupport
cleanupCommands, factory, input, noMoreRequests
 
Fields inherited from class com.sun.jimi.core.util.ProgressMonitorSupport
currentProgressLevel, progressListener
 
Constructor Summary
JimiMultiImageRasterDecoder()
           
 
Method Summary
abstract  MutableJimiRasterImage doInitNextDecoding(JimiImageFactory factory, java.io.InputStream input)
          Initialize decoding by reading headers and creating the image representation.
abstract  void doNextImageDecode()
          Populate the image created in doInitDecoding with pixel data.
abstract  void doSkipNextImage()
          Skip the next image int the file.
 void driveDecoding()
          Drive decoding of an image frame.
 java.io.InputStream getInput()
          Get the stream to read image data from.
 JimiImageFactory getJimiImageFactory()
          Get the factory for creating JimiImages from.
abstract  boolean hasMoreImages()
          Check whether there are more images in the file to decoder.
 ImageSeriesDecodingController initDecoding(JimiImageFactory factory, java.io.InputStream input)
           
protected  JimiDecodingController initNextDecoding()
          Initialize decoding of the next image.
protected  void setBusy(boolean busy)
           
protected  void setJimiImage(MutableJimiRasterImage jimiImage)
           
 void setProgress(int progressLevel)
          Set the progress level.
protected  void waitReady()
           
 
Methods inherited from class com.sun.jimi.core.JimiRasterDecoderSupport
addCleanupCommand, cleanup, init, setFinished
 
Methods inherited from class com.sun.jimi.core.util.ProgressMonitorSupport
setProgressListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

currentDecodingController

protected JimiDecodingController currentDecodingController

currentHandle

protected JimiImageHandle currentHandle

controller

protected com.sun.jimi.core.MImageSeriesDecodingController controller

error

protected boolean error
set to true if an error prevents decoding so that no further operations will be made

busy

protected boolean busy
true while an image is being decoded
Constructor Detail

JimiMultiImageRasterDecoder

public JimiMultiImageRasterDecoder()
Method Detail

initDecoding

public ImageSeriesDecodingController initDecoding(JimiImageFactory factory,
                                                  java.io.InputStream input)

initNextDecoding

protected JimiDecodingController initNextDecoding()
Initialize decoding of the next image.

driveDecoding

public void driveDecoding()
Drive decoding of an image frame.

doInitNextDecoding

public abstract MutableJimiRasterImage doInitNextDecoding(JimiImageFactory factory,
                                                          java.io.InputStream input)
                                                   throws JimiException,
                                                          java.io.IOException
Initialize decoding by reading headers and creating the image representation. The image should not be populated with any pixels in this method.
Parameters:
factory - the factory from which to create the image
input - the stream to read image data from
Throws:
JimiException - if the data from the stream is invalid or cannot be handled
java.io.IOException - if an error is encountered trying to read from the stream

doNextImageDecode

public abstract void doNextImageDecode()
                                throws JimiException,
                                       java.io.IOException
Populate the image created in doInitDecoding with pixel data.

doSkipNextImage

public abstract void doSkipNextImage()
                              throws JimiException,
                                     java.io.IOException
Skip the next image int the file.

hasMoreImages

public abstract boolean hasMoreImages()
Check whether there are more images in the file to decoder.

setJimiImage

protected void setJimiImage(MutableJimiRasterImage jimiImage)

getJimiImageFactory

public JimiImageFactory getJimiImageFactory()
Get the factory for creating JimiImages from.
Overrides:
getJimiImageFactory in class JimiRasterDecoderSupport

setProgress

public void setProgress(int progressLevel)
Set the progress level.
Parameters:
progressLevel - the level of progress, between 0 and 1000 inclusive
Overrides:
setProgress in class ProgressMonitorSupport

getInput

public java.io.InputStream getInput()
Get the stream to read image data from.
Overrides:
getInput in class JimiRasterDecoderSupport

setBusy

protected void setBusy(boolean busy)

waitReady

protected void waitReady()