giflib の使い方
マニュアル発見
6行で使い方を説明
ファイル名かファイルディスクリプタ(int fd) を渡して、GIF ファイル画像を開く。
GifFileType *DGifOpenFileName(char *GifFileName) GifFileType *DGifOpenFileHandle(int GifFileHandle)
実際に画像を内部表現データ(in-core allocated structures)に取り込むのは、これ。
int DGifSlurp(GifFileType *GifFile)
後は、GifFileType 構造体のメンバーを辿って欲しい情報を引き出すだけ。
さて…
使い方は簡単そうだけど、(ファイルでなく)データ配列から読む方法が欲しいので
もちょっと調べないとダメか。
画像合成
何をやりたいのかというと、いわゆるアバター合成みたい処理を自前で実装できないかなーと。
そして、giflib のソースツリーを眺めていて、そのまんまのツールが入っているのを発見。
gifovly.c
* History: * 6 May 94 - Version 1.0 by Eric Raymond.
あの 有名な人(Eric S. Raymond's Home Page)かな。同姓同名だよね。きっと。と思ったら、
"Gif compiler,\t\tEric S. Raymond\n\ (C) Copyright 1992 Eric S. Raymond, all rights reserved.\n";
ホンモノか。(;゜д゜)
gif_lib.h を読むと、
* 26 Jun 96 - Version 3.0 by Eric S. Raymond (Full GIF89 support)
なるほど。PNG でかなり貢献してる人ってイメージがあったけど、GIF もそうだったのね。
quantize.c
ついでに、256色への減色処理も発見
うーん。mediun cut 法かな。これ… 工夫の余地がありそう。