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 AnimatedGifEncoder

    java.lang.Object
      org.ajax4jsf.resource.image.animatedgif.AnimatedGifEncoder

    public class AnimatedGifEncoder

extends java.lang.Object

Class AnimatedGifEncoder - Encodes a GIF file consisting of one or more frames.

     Example:
        AnimatedGifEncoder e = new AnimatedGifEncoder();
        e.start(outputFileName);
        e.setDelay(1000);   // 1 frame per sec
        e.addFrame(image1);
        e.addFrame(image2);
        e.finish();

No copyright asserted on the source code of this class. May be used for any purpose, however, refer to the Unisys LZW patent for restrictions on use of the associated LZWEncoder class. Please forward any corrections to kweiner@fmsware.com.

Version:
  1.03 November 2003
Author:
  Kevin Weiner, FM Software

Field Summary
`protected boolean` | `closeStream`
`protected int` | `colorDepth`
`protected byte[]` | `colorTab`
`protected int` | `delay`
`protected int` | `dispose`
`protected boolean` | `firstFrame`
`protected int` | `height`
`protected java.awt.image.BufferedImage` | `image`
`protected byte[]` | `indexedPixels`
`protected java.io.OutputStream` | `out`
`protected int` | `palSize`
`protected byte[]` | `pixels`
`protected int` | `repeat`
`protected int` | `sample`
`protected boolean` | `sizeSet`
`protected boolean` | `started`
`protected int` | `transIndex`
`protected java.awt.Color` | `transparent`
`protected boolean[]` | `usedEntry`
`protected int` | `width`

Constructor Summary
`AnimatedGifEncoder()`

Method Summary
`boolean` | `addFrame(java.awt.image.BufferedImage im)` Adds next GIF frame.
`protected void` | `analyzePixels()` Analyzes image colors and creates color map.
`protected int` | `findClosest(java.awt.Color c)` Returns index of palette color closest to c
`boolean` | `finish()` Flushes any pending data and closes output file.
`protected void` | `getImagePixels()` Extracts image pixels into byte array "pixels"
`void` | `setDelay(int ms)` Sets the delay time between each frame, or changes it for subsequent frames (applies to last frame added).
`void` | `setDispose(int code)` Sets the GIF frame disposal code for the last added frame and any subsequent frames.
`void` | `setFrameRate(float fps)` Sets frame rate in frames per second.
`void` | `setQuality(int quality)` Sets quality of color quantization (conversion of images to the maximum 256 colors allowed by the GIF specification).
`void` | `setRepeat(int iter)` Sets the number of times the set of GIF frames should be played.
`void` | `setSize(int w, int h)` Sets the GIF frame size.
`void` | `setTransparent(java.awt.Color c)` Sets the transparent color for the last added frame and any subsequent frames.
`boolean` | `start(java.io.OutputStream os)` Initiates GIF file creation on the given stream.
`boolean` | `start(java.lang.String file)` Initiates writing of a GIF file with the specified name.
`protected void` | `writeGraphicCtrlExt()` Writes Graphic Control Extension
`protected void` | `writeImageDesc()` Writes Image Descriptor
`protected void` | `writeLSD()` Writes Logical Screen Descriptor
`protected void` | `writeNetscapeExt()` Writes Netscape application extension to define repeat count.
`protected void` | `writePalette()` Writes color table
`protected void` | `writePixels()` Encodes and writes pixel data
`protected void` | `writeShort(int value)` Write 16-bit value to output stream, LSB first
`protected void` | `writeString(java.lang.String s)` Writes string to output stream

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### width

    protected int width

### height

    protected int height

### transparent

    protected java.awt.Color transparent

### transIndex

    protected int transIndex

### repeat

    protected int repeat

### delay

    protected int delay

### started

    protected boolean started

### out

    protected java.io.OutputStream out

### image

    protected java.awt.image.BufferedImage image

### pixels

    protected byte[] pixels

### indexedPixels

    protected byte[] indexedPixels

### colorDepth

    protected int colorDepth

### colorTab

    protected byte[] colorTab

### usedEntry

    protected boolean[] usedEntry

### palSize

    protected int palSize

### dispose

    protected int dispose

### closeStream

    protected boolean closeStream

### firstFrame

    protected boolean firstFrame

### sizeSet

    protected boolean sizeSet

### sample

    protected int sample

Constructor Detail

### AnimatedGifEncoder

    public AnimatedGifEncoder()

Method Detail

### setDelay

    public void setDelay(int ms)

  Sets the delay time between each frame, or changes it for subsequent frames (applies to last frame added).

  Parameters:
    `ms` - int delay time in milliseconds

### setDispose

    public void setDispose(int code)

  Sets the GIF frame disposal code for the last added frame and any subsequent frames. Default is 0 if no transparent color has been set, otherwise 2.

  Parameters:
    `code` - int disposal code.

### setRepeat

    public void setRepeat(int iter)

  Sets the number of times the set of GIF frames should be played. Default is 1; 0 means play indefinitely. Must be invoked before the first image is added.

  Parameters:
    `iter` - int number of iterations.

### setTransparent

    public void setTransparent(java.awt.Color c)

  Sets the transparent color for the last added frame and any subsequent frames. Since all colors are subject to modification in the quantization process, the color in the final palette for each frame closest to the given color becomes the transparent color for that frame. May be set to null to indicate no transparent color.

  Parameters:
    `c` - Color to be treated as transparent on display.

### addFrame

    public boolean addFrame(java.awt.image.BufferedImage im)

  Adds next GIF frame. The frame is not written immediately, but is actually deferred until the next frame is received so that timing data can be inserted. Invoking `finish()` flushes all frames. If `setSize` was not invoked, the size of the first image is used for all subsequent frames.

  Parameters:
    `im` - BufferedImage containing frame to write.
  Returns:
    true if successful.

### finish

    public boolean finish()

  Flushes any pending data and closes output file. If writing to an OutputStream, the stream is not closed.

### setFrameRate

    public void setFrameRate(float fps)

  Sets frame rate in frames per second. Equivalent to `setDelay(1000/fps)`.

  Parameters:
    `fps` - float frame rate (frames per second)

### setQuality

    public void setQuality(int quality)

  Sets quality of color quantization (conversion of images to the maximum 256 colors allowed by the GIF specification). Lower values (minimum = 1) produce better colors, but slow processing significantly. 10 is the default, and produces good color mapping at reasonable speeds. Values greater than 20 do not yield significant improvements in speed.

  Parameters:
    `quality` - int greater than 0.

### setSize

    public void setSize(int w,
                        int h)

  Sets the GIF frame size. The default size is the size of the first frame added if this method is not invoked.

  Parameters:
    `w` - int frame width.
    `h` - int frame width.

### start

    public boolean start(java.io.OutputStream os)

  Initiates GIF file creation on the given stream. The stream is not closed automatically.

  Parameters:
    `os` - OutputStream on which GIF images are written.
  Returns:
    false if initial write failed.

### start

    public boolean start(java.lang.String file)

  Initiates writing of a GIF file with the specified name.

  Parameters:
    `file` - String containing output file name.
  Returns:
    false if open or initial write failed.

### analyzePixels

    protected void analyzePixels()

  Analyzes image colors and creates color map.

### findClosest

    protected int findClosest(java.awt.Color c)

  Returns index of palette color closest to c

### getImagePixels

    protected void getImagePixels()

  Extracts image pixels into byte array "pixels"

### writeGraphicCtrlExt

    protected void writeGraphicCtrlExt()
                                throws java.io.IOException

  Writes Graphic Control Extension

  Throws:
    `java.io.IOException`

### writeImageDesc

    protected void writeImageDesc()
                           throws java.io.IOException

  Writes Image Descriptor

  Throws:
    `java.io.IOException`

### writeLSD

    protected void writeLSD()
                     throws java.io.IOException

  Writes Logical Screen Descriptor

  Throws:
    `java.io.IOException`

### writeNetscapeExt

    protected void writeNetscapeExt()
                             throws java.io.IOException

  Writes Netscape application extension to define repeat count.

  Throws:
    `java.io.IOException`

### writePalette

    protected void writePalette()
                         throws java.io.IOException

  Writes color table

  Throws:
    `java.io.IOException`

### writePixels

    protected void writePixels()
                        throws java.io.IOException

  Encodes and writes pixel data

  Throws:
    `java.io.IOException`

### writeShort

    protected void writeShort(int value)
                       throws java.io.IOException

  Write 16-bit value to output stream, LSB first

  Throws:
    `java.io.IOException`

### writeString

    protected void writeString(java.lang.String s)
                        throws java.io.IOException

  Writes string to output stream

  Throws:
    `java.io.IOException`

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.