首页 > 教程 > 献给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文件【卡卡】》有 19 条评论

  1. firefox618 说:

    斑竹
    gif.setRepeat(0);
    gif.setDelay(40);
    NullPointer Exception
    指向空指针什么意思呢?

  2. 隔壁老王 说:

    我这里setDelay(); 无论填任何数,输出的GIF帧率最大不超过10帧/秒,不知你们正常吗? 你们能导出60帧/秒的GIF吗?

  3. 隔壁老王 说:

    我无法找到原因,我的I7笔记本,我试过一些软件图片转GIF的软件,同样是到顶10帧/秒,
    只有先将图片做成视频,然后用软件将视频转GIF,才能得到60帧/秒的GIF, 可能我人品有问题

  4. New_Symbol 说:

    3.3.5的版本,导入库文件GifAnimation是灰色的。请问手动添加库文件应该放哪个文件夹?刚开始学的小白,请各位大侠指导

  5. ZPCC 说:

    sketch - import library - add library 这个步骤一做就报错是咋回事呢?

  6. 名字太难想了 说:

    点击鼠标但是没有反应?

留下一个回复

你的email不会被公开。