CGIF:簡単な使い方(gcc)3

アニメーションGIFを作る


sample2.c

#include "cgif.h"
int main()
{
  int i;
  double x;
  cgif_init(100,100,10,0);
  cgif_create_window( -5, 10, 5, 0);

  for ( i = 0; i < 10; i++)
    for ( x = -5; x < 5; x += 0.05){
      cgif_setGraphicBlock(1,0,2,5,i); /* 第三引数を1にしてみる */
      cgif_pset( x, x*x + i, cgifRed, i);
      cgif_line( 0, 0, 0, 10, cgifBlue, i);
    }
  cgif_output("sample2.gif");
  return 0;
}

コンパイルして実行するとこんなGIFファイルが作られます。

まず関数の説明します。

cgif_setGraphicBlock(TransparentFlag, UserInputFlag, DisposalMethod, time, frame)
イメージ表示の特殊な処理をそれぞれのページに対して指定します。この関数を呼ばなくてもアニメーションGIF画像は作れます。
TransparentFlagは、透過処理をするかしないかを1か0で指定します。今回はGIF画像の背景は特別に塗り潰していないので、透過処理をしてブラウザの背景をそのままGIF画像の背景にしています。
UserInputFlagはユーザーの入力を必要とするかしないかを1か0で指定します。
今回はしないので0になっています。
DisposalMethodはページ番号frameの画像を表示し終えた後の処理を1〜3で指定します。
timeはページ番号frameの画像を表示し待機し続けている時間です。(100分の1秒単位)
frameは指定しようとしているイメージのページ番号です。

cgif_init(width, height, frame, iteration)
前回説明しましたが、今回はアニメーションGIF画像を作るので、アニメーションのページ数を指定するframeを10にしています。 iterationはアニメーションの繰り返す回数ですが、無限回繰り返したいので0にしています。

これで色々なGIF画像を作ることができます。
TOPページ真ん中のGIF画像はcgif.c, cgif.hscrew.cを使って作りました。
TOP 簡単な使い方(gcc) 戻る