public class AnimatedGifEncoder extends 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 BufferedImage |
image |
protected byte[] |
indexedPixels |
protected OutputStream |
out |
protected int |
palSize |
protected byte[] |
pixels |
protected int |
repeat |
protected int |
sample |
protected boolean |
sizeSet |
protected boolean |
started |
protected int |
transIndex |
protected Color |
transparent |
protected boolean[] |
usedEntry |
protected int |
width |
Constructor and Description |
---|
AnimatedGifEncoder() |
Modifier and Type | Method and Description |
---|---|
boolean |
addFrame(BufferedImage im)
Adds next GIF frame.
|
protected void |
analyzePixels()
Analyzes image colors and creates color map.
|
protected int |
findClosest(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(Color c)
Sets the transparent color for the last added frame and any subsequent
frames.
|
boolean |
start(OutputStream os)
Initiates GIF file creation on the given stream.
|
boolean |
start(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(String s)
Writes string to output stream
|
protected int width
protected int height
protected Color transparent
protected int transIndex
protected int repeat
protected int delay
protected boolean started
protected OutputStream out
protected 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(Color c)
c
- Color to be treated as transparent on display.public boolean addFrame(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 quality)
quality
- int greater than 0.public void setSize(int w, int h)
w
- int frame width.h
- int frame width.public boolean start(OutputStream os)
os
- OutputStream on which GIF images are written.public boolean start(String file)
file
- String containing output file name.protected void analyzePixels()
protected int findClosest(Color c)
protected void getImagePixels()
protected void writeGraphicCtrlExt() throws IOException
IOException
protected void writeImageDesc() throws IOException
IOException
protected void writeLSD() throws IOException
IOException
protected void writeNetscapeExt() throws IOException
IOException
protected void writePalette() throws IOException
IOException
protected void writePixels() throws IOException
IOException
protected void writeShort(int value) throws IOException
IOException
protected void writeString(String s) throws IOException
IOException
Copyright © 2019. All rights reserved.