public class AnimatedGifEncoder
extends java.lang.Object
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.
Modifier and Type | Field and Description |
---|---|
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 and Description |
---|
AnimatedGifEncoder() |
Modifier and Type | Method and Description |
---|---|
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 q)
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.File file)
Initiates writing of a GIF file with the specified name.
|
boolean |
start(java.io.OutputStream os)
Initiates GIF file creation on the given stream.
|
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
|
protected int width
protected int height
protected java.awt.Color transparent
protected int transIndex
protected int repeat
protected int delay
protected boolean started
protected java.io.OutputStream out
protected java.awt.image.BufferedImage image
protected byte[] pixels
protected byte[] indexedPixels
protected int colorDepth
protected byte[] colorTab
protected boolean[] usedEntry
protected int palSize
protected int dispose
protected boolean closeStream
protected boolean firstFrame
protected boolean sizeSet
protected int sample
public void setDelay(int ms)
ms
- int delay time in millisecondspublic void setDispose(int code)
code
- int disposal code.public void setRepeat(int iter)
iter
- int number of iterations.public void setTransparent(java.awt.Color c)
c
- Color to be treated as transparent on display.public boolean addFrame(java.awt.image.BufferedImage im)
finish()
flushes all
frames. If setSize
was not invoked, the size of the
first image is used for all subsequent frames.im
- BufferedImage containing frame to write.public boolean finish()
public void setFrameRate(float fps)
setDelay(1000/fps)
.fps
- float frame rate (frames per second)public void setQuality(int q)
quality
- int greater than 0.public void setSize(int w, int h)
w
- int frame width.h
- int frame width.public boolean start(java.io.OutputStream os)
os
- OutputStream on which GIF images are written.public boolean start(java.io.File file)
file
- String containing output file name.protected void analyzePixels()
protected int findClosest(java.awt.Color c)
protected void getImagePixels()
protected void writeGraphicCtrlExt() throws java.io.IOException
java.io.IOException
protected void writeImageDesc() throws java.io.IOException
java.io.IOException
protected void writeLSD() throws java.io.IOException
java.io.IOException
protected void writeNetscapeExt() throws java.io.IOException
java.io.IOException
protected void writePalette() throws java.io.IOException
java.io.IOException
protected void writePixels() throws java.io.IOException
java.io.IOException
protected void writeShort(int value) throws java.io.IOException
java.io.IOException
protected void writeString(java.lang.String s) throws java.io.IOException
java.io.IOException
Copyright © 2013. All Rights Reserved.