技巧
以往的方法,一般是通过 saveFrame()命令导出序列帧。再在PS等软件中进行合成。
现在我们可以直接用 GifAnimation 库来实现
processing2.0适用版本: http://extrapixel.github.io/gif-animation/
processing3.0适用版本:https://github.com/01010101/GifAnimation
可在 sketch - import library - add library 里面搜索导入。
下面是。
import gifAnimation.*;
GifMaker gif;
void setup(){
//插入你的初始化程序
setup_();
}
void draw(){
//插入你的draw代码
draw_();
}
void setup_(){
gif = new GifMaker(this,"gif.gif");
gif.setRepeat(0); //设置Gif重复播放的次数,0为循环播放
gif.setDelay(40); //设置帧与帧之间的延迟时间,单位为毫秒。数值为40时,帧率则为 25(1000/40)。
}
void draw_(){
if(frameCount % 1 == 0){ //每间隔多少帧,写入一次(相当于改变播放速率)
gif.addFrame(); //将当前帧写入gif内
}
}
void mousePressed(){
gif.finish(); //导出Gif
}
使用的时候,将你的 setup 和 draw 代码放在合适的位置。
原代码如:
void setup(){
size(400,400);//将此代码放在setup处
}
void draw(){
background(0);
ellipse(200,frameCount % height,50,50);//此代码放在draw处
}
之后只要点击一下鼠标,就能直接保存Gif。一行代码也不用敲~~
完整代码
下面再给出一个完整的实例
import gifAnimation.*;
GifMaker gif;
void setup(){
size(400,400); //插入你的初始化程序
setup_();
}
void draw(){
background(0);
ellipse(200,frameCount % height,50,50); //插入你的draw代码
draw_();
}
void setup_(){
gif = new GifMaker(this,"gif.gif");
gif.setRepeat(0); //设置Gif重复播放的次数,0为循环播放
gif.setDelay(40); //设置帧与帧之间的延迟时间,单位为毫秒。数值为40时,帧率则为 25(1000/40)。
}
void draw_(){
if(frameCount % 1 == 0){ //每间隔多少帧,写入一次(相当于改变播放速率)
gif.addFrame(); //将当前帧写入gif内
}
}
void mousePressed(){
gif.finish(); //导出Gif
}
- 本文固定链接: http://iprocessing.cn/2017/08/13/献给processing爱好者的教程【3】-导出gif文件【卡卡】/
- 转载请注明: 卡萨布兰卡 于 Processing编程艺术 发表
《献给Processing爱好者的教程【3】—-导出GIF文件【卡卡】》有 27 条评论