首页 > 教程 > 献给Processing爱好者的教程【3】—-导出GIF文件【卡卡】
2017
08-13

献给Processing爱好者的教程【3】—-导出GIF文件【卡卡】

献给Processing爱好者的教程【3】—-导出GIF文件【卡卡】 - 第1张  | Processing编程艺术

献给Processing爱好者的教程【3】—-导出GIF文件【卡卡】 - 第2张  | Processing编程艺术

技巧

以往的方法,一般是通过 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
}

 



最后编辑:
作者:卡萨布兰卡
这个作者貌似有点懒,什么都没有留下。

献给Processing爱好者的教程【3】—-导出GIF文件【卡卡】》有 27 条评论

  1. 名字太难想了 说:
  2. PottermoreIron 说:

留下一个回复

你的email不会被公开。