DooGIF
GIF のコメント削除と挿入、アニメーション GIF の展開と分解
Perl 5
DooGIF とは
DooGIF は
- 不要ブロック ( 通常はコメント ) とファイル末尾のゴミを削除しファイルサイズをダイエット
- コメントの挿入
- アニメーション GIF の展開
- アニメーション GIF の分解
ができる Perl ライブラリです。
Sample
別ページに移動します。サンプルでは小さめのファイルしか弄れません
Download
DooGIF [ Download ]
使い方
共通
- $gifFile
- 対象のファイル
- $newFile ( 省略可能 )
- ファイルを作って書き出す時にはファイル名。
- $result
- エラーが起こったときには error という文字列が返ります。
コメントブロック、未知のブロック、ファイル末尾のゴミを削除
ファイルを作ってそこに書き出させる
$result = doogif::dieter( $gifFile , $newFile );
ファイルに書き出す場合 $result には削ることのできたバイト数が返ります。 数字の 0 だった場合は削れるデータが無かったことを意味します。 この場合ファイルはありません ( 削除されています )。
処理済みデータを受け取る
$result = doogif::dieter( $gifFile );
処理済みデータを受け取る場合 $result にはデータそのものが返ります。 数字の 0 だった場合は削れるデータが無かったことを意味します。
コメントの挿入
$comment は挿入したいコメントです。
ファイルを作ってそこに書き出させる
$result = doogif::inserter( $gifFile, $newFile, $comment);
成功時は $result に数字の 1 が返ります。
処理済みデータを受け取る
$result = doogif::inserter( $gifFile, '', $comment);
$result には処理済みデータそのものが返ります。
アニメーション GIF の展開
$direction で展開させたい方向を指定します。
$direction = 'x'; なら横方向。
$direction = 'y'; なら縦方向に展開します。
省略した場合は y になります。
縦方向に展開させたものをファイルに書き出す
$result = doogif::opener( $gifFile, $newFile );
ファイルに書き出す場合 $result にはアニメーション GIF に含まれていた画像の数が返ります。 もしアニメーション GIF では無かった場合は数字の 0 が返ります。 この時ファイルはありません ( 削除されています )。
横方向に展開させたデータを受け取る
$result = doogif::opener( $gifFile, '', 'x' );
処理済データを受け取る場合 $result にはデータそのものが返ります。 もしアニメーション GIF では無かった場合は数字の 0 が返ります。
アニメーション GIF の分解
ファイルを作ってそこに書き出させる
($result, @imagez) = doogif::cutter( $gifFile, $fileSuffix );
ファイルに書き出す場合 $fileSuffix には例えば
$fileSuffix = './foo/bar';
とすれば foo というディレクトリに bar001.gif, bar002.gif, bar003.gif....
と GIF に含まれる画像データ分ファイルが作られます。
$result には幾つ画像が含まれていたか数値が返り、 @imagez には作られたファイルのパスが配列で返ります。 もしアニメーション GIF では無かった場合 $result には数字の 0 が返り、@imagez には何も返りません。
縦・横幅、表示維持を維持した処理済みデータを受け取る。
($result, @imagez) = doogif::cutter( $gifFile, '', $flag);
もし $flag に 1 を渡すとヘッダで定義されている画像の縦幅と横幅、 表示位置を維持したデータが返ります。
処理済みデータを受け取る場合 $result には幾つ画像が含まれていたか数値が返り、 @imagez にはデータが配列で返ります。 もしアニメーション GIF では無かった場合 $result には数字の 0 が返り、@imagez には何も返りません。
GIF の解析
$result = doogif::analyzer( $gifFile );
e.g., print $result;
Copyright(C) 2002-2005 kerry.