- giflib -- A library for processing GIFs
# libungif development stopped 2007-11-10
cvs -d:pserver:anonymous@giflib.cvs.sourceforge.net:/cvsroot/giflib login
cvs -z3 -d:pserver:anonymous@giflib.cvs.sourceforge.net:/cvsroot/giflib co -P giflib
- Introduction to GIFLIB
- Utility (sample code)
使い方
- http://giflib.sourceforge.net/doc/gif_lib.html
- http://diary.awm.jp/~yoya/?2008091#200809141 giflib の使い方を6行で説明
ファイル名かファイルディスクリプタ(int fd) を渡して、GIF ファイル画像を開く。
GifFileType *DGifOpenFileName(char *GifFileName)
GifFileType *DGifOpenFileHandle(int GifFileHandle)
実際に画像を内部表現データ(in-core allocated structures)に取り込むのは、これ。
int DGifSlurp(GifFileType *GifFile)
後は、GifFileType 構造体のメンバーを辿って欲しい情報を引き出す。
- あ、やっぱり6行じゃ無理だった…追記
尚、DGifSlurp 内部では逐次的にデータを取得していて、その層の API を
使う事もできる。(util/rotat.c, gifrsize.c 参考のこと)
while ((DGifGetRecordType(&GifFile, &RecordType)) &&
(RecordType != TERMINATE_RECORD_TYPE)) {
switch(RecordType) {
case SCREEN_DESC_RECORD_TYPE:
DGifGetScreenDesc(&GifFile);
break;
<略>
利用例
参考
- libungifとgiflib
- Imager-0.53でGIFアニメーションのループをさせるためのパッチ
関連