org.opensourcephysics.media.gif
Class GifDecoder

java.lang.Object
  extended by org.opensourcephysics.media.gif.GifDecoder

public class GifDecoder
extends java.lang.Object

Class GifDecoder - Decodes a GIF file into one or more frames.

 Example:
    GifDecoder d = new GifDecoder();
    d.read("sample.gif");
    int n = d.getFrameCount();
    for (int i = 0; i < n; i++) {
       BufferedImage frame = d.getFrame(i);  // frame i
       int t = d.getDelay(i);  // display duration of frame in milliseconds
       // do something with frame
    }
 
No copyright asserted on the source code of this class. May be used for any purpose, however, refer to the Unisys LZW patent for any additional restrictions. Please forward any corrections to kweiner@fmsware.com.

Version:
1.03 November 2003
Author:
Kevin Weiner, FM Software; LZW decoder adapted from John Cristy's ImageMagick.

Field Summary
static int STATUS_FORMAT_ERROR
          File read status: Error decoding file (may be partially decoded)
static int STATUS_OK
          File read status: No errors.
static int STATUS_OPEN_ERROR
          File read status: Unable to open source.
 
Constructor Summary
GifDecoder()
           
 
Method Summary
 int getDelay(int n)
          Gets display duration for specified frame.
 java.awt.image.BufferedImage getFrame(int n)
          Gets the image contents of frame n.
 int getFrameCount()
          Gets the number of frames read from file.
 java.awt.Dimension getFrameSize()
          Gets image size.
 java.awt.image.BufferedImage getImage()
          Gets the first (or only) image read.
 int getLoopCount()
          Gets the "Netscape" iteration count, if any.
 int read(java.io.BufferedInputStream input)
          Reads GIF image from stream
 int read(java.lang.String name)
          Reads GIF file from specified file/URL source (URL assumed if name contains ":/" or "file:")
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STATUS_OK

public static final int STATUS_OK
File read status: No errors.

See Also:
Constant Field Values

STATUS_FORMAT_ERROR

public static final int STATUS_FORMAT_ERROR
File read status: Error decoding file (may be partially decoded)

See Also:
Constant Field Values

STATUS_OPEN_ERROR

public static final int STATUS_OPEN_ERROR
File read status: Unable to open source.

See Also:
Constant Field Values
Constructor Detail

GifDecoder

public GifDecoder()
Method Detail

getDelay

public int getDelay(int n)
Gets display duration for specified frame.

Parameters:
n - int index of frame
Returns:
delay in milliseconds

getFrameCount

public int getFrameCount()
Gets the number of frames read from file.

Returns:
frame count

getImage

public java.awt.image.BufferedImage getImage()
Gets the first (or only) image read.

Returns:
BufferedImage containing first frame, or null if none.

getLoopCount

public int getLoopCount()
Gets the "Netscape" iteration count, if any. A count of 0 means repeat indefinitiely.

Returns:
iteration count if one was specified, else 1.

getFrame

public java.awt.image.BufferedImage getFrame(int n)
Gets the image contents of frame n.

Parameters:
n - the frame number
Returns:
BufferedImage representation of frame, or null if n is invalid.

getFrameSize

public java.awt.Dimension getFrameSize()
Gets image size.

Returns:
GIF image dimensions

read

public int read(java.io.BufferedInputStream input)
Reads GIF image from stream

Parameters:
input - the BufferedInputStream containing GIF file.
Returns:
read status code (0 = no errors)

read

public int read(java.lang.String name)
Reads GIF file from specified file/URL source (URL assumed if name contains ":/" or "file:")

Parameters:
name - String containing source
Returns:
read status code (0 = no errors)