Processingで描いた絵をgifアニメにしたかった.調べてみたらいくつか方法がわかったので,まとめておく.

gifAnimatinonを使う

gifAnimationというprocessingの外部ライブラリを導入することで,gifアニメを作ることができる.gifAnimationについては次のリンクからダウンロードでき,使い方も書いてある.
http://extrapixel.github.io/gif-animation/
また,メニューの「Sketch」→「Import Library...」→「Add Library…」からでもライブラリをインポートできる.

サンプルプログラム

import gifAnimation.*;

GifMaker gifExport;

void setup(){
  size(300, 300);
  noStroke();
  smooth();

  gifExport = new GifMaker(this, "noise.gif");
  gifExport.setRepeat(0);
}

void draw(){
  background(0);
  for(int i = 0; i < width; i++){
    for(int j = 0; j < height; j++){
      fill(random(255));
      rect(i, j, 1, 1);
    }
  }
  gifExport.setDelay(1);
  gifExport.addFrame();

}

void mousePressed(){
  gifExport.finish();
}

作ったものはこんな感じになる.
f:id:axxasusi:20140607011311g:plain

ImageMagickを使う

まずは,連番画像を作る.作り方は,以下のコードをプログラムの中に埋め込む.基本的にはdraw()の最後にでも書いておけばいいと思う.

saveFrame(“frames/####.png”);

詳しくは,メニューの「Tools」→「Movie Maker」に書いてある.ここからは作った連番画像を使用して動画を作ることができる.音も別に追加できるよう.ただ,gifアニメはつくれない.ImageMagickの以下のコマンドで,作った連番画像を使用してgifアニメを作ることができる.

convert -delay 40 -loop 0  *.tif anime.gif

delayオプションは切り替え時間(ms),loopオプションは繰り返し設定.その他にPhotoshopを使ったりしても作れるよう.


[参考]
やばいと思ったがProcessingを抑えきれず、gif作った。 - 脱力系日記
http://tkmr.hatenablog.com/entry/2013/06/12/001733
log_ts processing2.0で動画保存
http://log-ts.tumblr.com/post/60166243311/processing2-0
OSX - 連番画像から簡単にgifアニメを作る - Qiita
http://qiita.com/ongaeshi/items/21fceae420b7330b0c1b