📄 gifframe.java
字号:
import javax.microedition.lcdui.Image;import java.util.Vector;/** * Gif帧管理器<br> * Gif动画被拆成一帧一个Image对象,保存在Vector中<br> * 播放时根据程序控制Gif动画的帧速率 * * @author pan * */public class GifFrame { /** * 保存所有帧系列 */ private Vector frames; /** * 当前帧 */ private int index; public GifFrame() { frames = new Vector(1); index = 0; } /** * 添加一帧 * @param image */ public void addImage(Image image) { frames.addElement(image); } public int size() { return frames.size(); } /** * 返回当前帧的Image * @return */ public Image getImage() { if (size() == 0) { System.out.println("无帧"); return null; } else { return (Image) frames.elementAt(index); } } /** * 下一帧 */ public void nextFrame() { if (index + 1 < size()) { index++; } else { index = 0; } } /** * 从byte[]中创建GifFrame * @param abyte0 * @return */ public static GifFrame CreateGifImage(byte abyte0[]) { try { System.out.println("开始创建gif"); GifFrame GF = new GifFrame(); Image image = null; GifDecoder gifdecoder = new GifDecoder(abyte0); for (; gifdecoder.moreFrames(); gifdecoder.nextFrame()) { try { image = gifdecoder.decodeImage(); if (GF != null && image != null) { System.out.println("添加图片"); GF.addImage(image); } continue; } catch (Exception e) { e.printStackTrace(); } break; } gifdecoder.clear(); gifdecoder = null; return GF; } catch (Exception e) { System.out.println("创建帧出错"+e.toString()); e.printStackTrace(); return null; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -