ij.plugin
Class GifEncoder

java.lang.Object
  extended by ij.plugin.GifEncoder

 class GifEncoder
extends java.lang.Object


Field Summary
(package private)  boolean closeStream
           
(package private)  int colorDepth
           
(package private)  byte[] colorTab
           
protected  int delay
           
(package private)  int dispose
           
(package private)  boolean firstFrame
           
(package private)  byte[] gct
           
(package private)  int GCTbl
           
(package private)  int GCTcindex
           
(package private)  boolean GCTextracted
           
(package private)  int GCTgrn
           
(package private)  boolean GCTloadedExternal
           
(package private)  boolean GCToverideColor
           
(package private)  boolean GCToverideIndex
           
(package private)  int GCTred
           
(package private)  boolean GCTsetTransparent
           
(package private)  int height
           
(package private)  ImagePlus image
           
(package private)  byte[] indexedPixels
           
(package private)  int lctSize
           
(package private)  java.io.OutputStream out
           
(package private)  byte[] pixels
           
(package private)  int repeat
           
(package private)  int sample
           
(package private)  boolean sizeSet
           
(package private)  boolean started
           
(package private)  int transIndex
           
(package private)  boolean transparent
           
(package private)  int width
           
 
Constructor Summary
GifEncoder()
           
 
Method Summary
 boolean addFrame(ImagePlus image)
          Adds next GIF frame.
 boolean finish()
          Flushes any pending data and closes output file.
 void OverRideQuality(int npixs)
          Sets Net sample size depending on image size
(package private)  void Process8bitCLT(ImagePlus image)
          Gets Color lookup Table from 8 bit ImagePlus
 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(boolean 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 without global color table
protected  void writeLSDgct()
          Writes Logical Screen Descriptor with global color table
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

int width

height

int height

transparent

boolean transparent

transIndex

int transIndex

repeat

int repeat

delay

protected int delay

started

boolean started

out

java.io.OutputStream out

image

ImagePlus image

pixels

byte[] pixels

indexedPixels

byte[] indexedPixels

colorDepth

int colorDepth

colorTab

byte[] colorTab

lctSize

int lctSize

dispose

int dispose

closeStream

boolean closeStream

firstFrame

boolean firstFrame

sizeSet

boolean sizeSet

sample

int sample

gct

byte[] gct

GCTextracted

boolean GCTextracted

GCTloadedExternal

boolean GCTloadedExternal

GCTred

int GCTred

GCTgrn

int GCTgrn

GCTbl

int GCTbl

GCTcindex

int GCTcindex

GCTsetTransparent

boolean GCTsetTransparent

GCToverideIndex

boolean GCToverideIndex

GCToverideColor

boolean GCToverideColor
Constructor Detail

GifEncoder

GifEncoder()
Method Detail

addFrame

public boolean addFrame(ImagePlus image)
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 - containing frame to write.
Returns:
true if successful.

Process8bitCLT

void Process8bitCLT(ImagePlus image)
Gets Color lookup Table from 8 bit ImagePlus


finish

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


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.

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.

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.

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.

setTransparent

public void setTransparent(boolean 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.

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.

OverRideQuality

public void OverRideQuality(int npixs)
Sets Net sample size depending on image size


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

writeLSDgct

protected void writeLSDgct()
                    throws java.io.IOException
Writes Logical Screen Descriptor with global color table

Throws:
java.io.IOException

writeLSD

protected void writeLSD()
                 throws java.io.IOException
Writes Logical Screen Descriptor without global color table

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