Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.ajax4jsf.resource.image.animatedgif
Class GifDecoder

    java.lang.Object
      org.ajax4jsf.resource.image.animatedgif.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
`protected int[]` | `act`
`protected int` | `bgColor`
`protected int` | `bgIndex`
`protected byte[]` | `block`
`protected int` | `blockSize`
`protected int` | `delay`
`protected int` | `dispose`
`protected int` | `frameCount`
`protected java.util.ArrayList` | `frames`
`protected int[]` | `gct`
`protected boolean` | `gctFlag`
`protected int` | `gctSize`
`protected int` | `height`
`protected int` | `ih`
`protected java.awt.image.BufferedImage` | `image`
`protected java.io.BufferedInputStream` | `in`
`protected boolean` | `interlace`
`protected int` | `iw`
`protected int` | `ix`
`protected int` | `iy`
`protected int` | `lastBgColor`
`protected int` | `lastDispose`
`protected java.awt.image.BufferedImage` | `lastImage`
`protected java.awt.Rectangle` | `lastRect`
`protected int[]` | `lct`
`protected boolean` | `lctFlag`
`protected int` | `lctSize`
`protected int` | `loopCount`
`protected static int` | `MAXSTACKSIZE`
`protected int` | `pixelAspect`
`protected byte[]` | `pixels`
`protected byte[]` | `pixelStack`
`protected short[]` | `prefix`
`protected int` | `status`
`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.
`protected byte[]` | `suffix`
`protected int` | `transIndex`
`protected boolean` | `transparency`
`protected int` | `width`

Constructor Summary
`GifDecoder()`

Method Summary
`protected void` | `decodeImageData()` Decodes LZW image data into pixel array.
`protected boolean` | `err()` Returns true if an error was encountered during reading/decoding
`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.
`protected void` | `init()` Initializes or re-initializes reader
`protected int` | `read()` Reads a single byte from the input stream.
`int` | `read(java.io.BufferedInputStream is)` Reads GIF image from stream
`int` | `read(java.io.InputStream is)` 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:")
`protected int` | `readBlock()` Reads next variable length block from input.
`protected int[]` | `readColorTable(int ncolors)` Reads color table as 256 RGB integer values
`protected void` | `readContents()` Main file parser.
`protected void` | `readGraphicControlExt()` Reads Graphics Control Extension values
`protected void` | `readHeader()` Reads GIF file header information.
`protected void` | `readImage()` Reads next frame image
`protected void` | `readLSD()` Reads Logical Screen Descriptor
`protected void` | `readNetscapeExt()` Reads Netscape extenstion to obtain iteration count
`protected int` | `readShort()` Reads next 16-bit value, LSB first
`protected void` | `resetFrame()` Resets frame state for reading next image.
`protected void` | `setPixels()` Creates new frame image from current data (and previous frames as specified by their disposition codes).
`protected void` | `skip()` Skips variable length blocks up to and including next zero length block.

Methods inherited from class java.lang.Object
`clone, equals, finalize, 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

### MAXSTACKSIZE

    protected static final int MAXSTACKSIZE

See Also:
  Constant Field Values

### in

    protected java.io.BufferedInputStream in

### status

    protected int status

### width

    protected int width

### height

    protected int height

### gctFlag

    protected boolean gctFlag

### gctSize

    protected int gctSize

### loopCount

    protected int loopCount

### gct

    protected int[] gct

### lct

    protected int[] lct

### act

    protected int[] act

### bgIndex

    protected int bgIndex

### bgColor

    protected int bgColor

### lastBgColor

    protected int lastBgColor

### pixelAspect

    protected int pixelAspect

### lctFlag

    protected boolean lctFlag

### interlace

    protected boolean interlace

### lctSize

    protected int lctSize

### ix

    protected int ix

### iy

    protected int iy

### iw

    protected int iw

### ih

    protected int ih

### lastRect

    protected java.awt.Rectangle lastRect

### image

    protected java.awt.image.BufferedImage image

### lastImage

    protected java.awt.image.BufferedImage lastImage

### block

    protected byte[] block

### blockSize

    protected int blockSize

### dispose

    protected int dispose

### lastDispose

    protected int lastDispose

### transparency

    protected boolean transparency

### delay

    protected int delay

### transIndex

    protected int transIndex

### prefix

    protected short[] prefix

### suffix

    protected byte[] suffix

### pixelStack

    protected byte[] pixelStack

### pixels

    protected byte[] pixels

### frames

    protected java.util.ArrayList frames

### frameCount

    protected int frameCount

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.

### setPixels

    protected void setPixels()

  Creates new frame image from current data (and previous frames as specified by their disposition codes).

### getFrame

    public java.awt.image.BufferedImage getFrame(int n)

  Gets the image contents of frame n.

  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 is)

  Reads GIF image from stream

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

### read

    public int read(java.io.InputStream is)

  Reads GIF image from stream

  Parameters:
    `InputStream` - 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)

### decodeImageData

    protected void decodeImageData()

  Decodes LZW image data into pixel array. Adapted from John Cristy's ImageMagick.

### err

    protected boolean err()

  Returns true if an error was encountered during reading/decoding

### init

    protected void init()

  Initializes or re-initializes reader

### read

    protected int read()

  Reads a single byte from the input stream.

### readBlock

    protected int readBlock()

  Reads next variable length block from input.

  Returns:
    number of bytes stored in "buffer"

### readColorTable

    protected int[] readColorTable(int ncolors)

  Reads color table as 256 RGB integer values

  Parameters:
    `ncolors` - int number of colors to read
  Returns:
    int array containing 256 colors (packed ARGB with full alpha)

### readContents

    protected void readContents()

  Main file parser. Reads GIF content blocks.

### readGraphicControlExt

    protected void readGraphicControlExt()

  Reads Graphics Control Extension values

### readHeader

    protected void readHeader()

  Reads GIF file header information.

### readImage

    protected void readImage()

  Reads next frame image

### readLSD

    protected void readLSD()

  Reads Logical Screen Descriptor

### readNetscapeExt

    protected void readNetscapeExt()

  Reads Netscape extenstion to obtain iteration count

### readShort

    protected int readShort()

  Reads next 16-bit value, LSB first

### resetFrame

    protected void resetFrame()

  Resets frame state for reading next image.

### skip

    protected void skip()

  Skips variable length blocks up to and including next zero length block.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010 JBoss, a division of Red Hat, Inc.. All Rights Reserved.