public class GifEncoder extends Object
Example:
GifEncoder e = new GifEncoder();
e.start(outputFileName);
e.setDelay(1000);
e.addFrame(image1);
e.addFrame(image2);
e.finish();
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
closeStream
完成后关闭流
|
protected int |
colorDepth
位平面数
|
protected byte[] |
colorTab
RGB调色板
|
protected int |
delay
帧延迟
|
protected int |
dispose
处理代码(-1 = default)
|
protected boolean |
firstFrame |
protected int |
height |
protected BufferedImage |
image
当前帧
|
protected byte[] |
indexedPixels
转换帧索引到调色板
|
protected OutputStream |
out |
protected int |
palSize
颜色表大小
|
protected byte[] |
pixels
BGR字节数组从帧
|
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 |
|---|
GifEncoder() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
addFrame(BufferedImage im)
添加下一个GIF帧。帧不是立即写入的,而是延迟到接收到下一帧,
以便插入计时数据。调用finish()刷新所有帧。如果setSize未被调用,
则第一个图像的大小将用于所有后续帧。
|
protected void |
analyzePixels()
分析图像颜色并创建颜色地图
|
protected int |
findClosest(Color c)
返回调色板颜色最接近c的索引
|
boolean |
finish()
刷新任何挂起的数据并关闭输出文件
如果写入OutputStream,则该流不是关闭的
|
byte[] |
getFrameByteArray() |
protected void |
getImagePixels()
将图像像素提取到字节数组"pixels"中
|
boolean |
outFlush() |
void |
reset() |
void |
setDelay(int ms)
设置每帧之间的延迟时间,或对后续帧进行更改(适用于最后添加的帧)
|
void |
setDispose(int code)
设置最后添加帧和任何后续帧的GIF帧处理代码
如果没有设置透明颜色,默认为0,否则为2
|
void |
setFrameRate(float fps)
以帧每秒为单位设置帧速率
相当于
setDelay(1000/fps) |
void |
setQuality(int quality)
设置颜色量化的质量(将图像转换为GIF规范允许的最大256色)
较低的值(最小值= 1)产生较好的颜色,但处理速度明显较慢
10是默认值,可以以合理的速度生成良好的颜色映射
大于20的值不会产生显著的速度改进
|
void |
setRepeat(int iter)
设置一组GIF帧的播放次数。默认是1;0表示无限期地玩下去
必须在添加第一个映像之前调用。
|
void |
setSize(int w,
int h)
设置GIF帧大小。默认大小是未调用此方法时添加的第一个帧的大小
|
void |
setTransparent(Color c)
设置最后添加的帧和任何后续帧的透明颜色
由于所有颜色在量化过程中都要进行修改, 因此最接近给定颜色的每一帧的最终
调色板中的颜色将成为该帧的透明颜色,可以设置为null来表示没有透明颜色
|
boolean |
start(OutputStream os)
启动给定流上的GIF文件创建。流不是自动关闭的
|
boolean |
start(String file)
初始化写入指定名称的GIF文件
|
protected void |
writeGraphicCtrlExt()
写入图形控制扩展名
|
protected void |
writeImageDesc()
Writes Image Descriptor
|
protected void |
writeLSD()
写入逻辑屏幕描述符
|
protected void |
writeNetscapeExt()
写入Netscape应用程序扩展名以定义重复计数
|
protected void |
writePalette()
写颜色表
|
protected void |
writePixels()
编码和写入像素数据
|
protected void |
writeShort(int value)
将16位值写入输出流,首先是LSB
|
protected void |
writeString(String s)
将字符串写入输出流
|
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延迟时间(毫秒)public void setDispose(int code)
code - int处理代码public void setRepeat(int iter)
iter - 迭代次数public void setTransparent(Color c)
c - 颜色被当作透明显示public boolean addFrame(BufferedImage im)
im - BufferedImage 包含要写入的帧public boolean outFlush()
public byte[] getFrameByteArray()
public boolean finish()
public void reset()
public void setFrameRate(float fps)
setDelay(1000/fps)fps - 浮点帧速率(帧/秒)public void setQuality(int quality)
quality - int大于0public void setSize(int w,
int h)
w - int框架宽度h - int框宽度public boolean start(OutputStream os)
os - 输出流的GIF图像被写入public boolean start(String file)
file - 包含输出文件名的字符串protected void analyzePixels()
protected int findClosest(Color c)
c - 颜色protected void getImagePixels()
protected void writeGraphicCtrlExt()
throws IOException
IOException - IO异常protected void writeImageDesc()
throws IOException
IOException - IO异常protected void writeLSD()
throws IOException
IOException - IO异常protected void writeNetscapeExt()
throws IOException
IOException - IO异常protected void writePalette()
throws IOException
IOException - IO异常protected void writePixels()
throws IOException
IOException - IO异常protected void writeShort(int value)
throws IOException
value - 16位值IOException - IO异常protected void writeString(String s) throws IOException
s - 字符串信息IOException - IO异常Copyright © 2020. All rights reserved.