openFrameworksの作品をgifにする

昨日からoFをさわり始めて,Webに作品を上げたいと思った.
jsに変換するよりもgifに変換するほうがらくだと思った.
変換するためにどうするべきか調べたところ,ofxGifEncoderなるものあるとわかった.

前にも書いたんだけど,パスを通して使ってみるとofxGifEncoder.cppのLine51とLine56でエラーが出ている.
img.wとimg.hとimg.bppはprotectedだからダメ,という内容だった.それぞれgetWidth()とgetHeight()とimg.getPixelsRef().getBitsPerPixel()で書きなおした.
その他は特になにもなく,普通に使えた.
 
自分で使ってみたときのコードはこれ
※パスとか.vcxprojのパス部分とか書き換えないと動かないと思う.あとVS2015で.
 
使い方は,まずパスを通す.
うまくできなかったら.vcxprojをいじって追加する.
 
使うプログラムのヘッダで,ofxGifEncoder型の変数を宣言する(ここではgifEncoderとする).
setupを以下のようにする.

次に,drawを以下のようにする.ここでは,フレームレートを60とし,3秒ごから6秒後まで0.1秒刻みでフレームを撮っている.
if()の中の数字を色々いじれば好きに撮ることができる.

captureFrame()を追加する.ここで保存する範囲を指定することもできる.

 
最後に,onGifSavedを追加する.保存するときのメッセージが不要であれば,onGisSavedとsetupの中の5行目(ofAddEventListenner)はいらない.

 
自分は適当なgifが撮れればよかったので,ofxGifEncoderを使ったが,普通にウィンドウをgifでキャプチャした方が早かったかもしれない.
まあ,こっちのほうが応用も効くし,良しとしよう.