GIFファイルの減色処理、透明化、インターレース化について

ホームページに載せるGIFファイルを作った場合、できるだけ色数を減らしま しょう。減色処理を行なうとファイルのサイズが小さくなるだけでなく、 カラーマップを食い潰して色化けが起こるのを防げます。 また、インターレース化しておくと画像イメージが徐々に表示されるようになり 見ている人のイライラを少し減らせます。 できるだけインターレース化しておきましょう:-)

GIFファイルの処理は、まず減色処理を最初に行なってください。透明化した あとに減色処理を行なうと、せっかく透明にした色が減色処理により他の色に 変更され、透明にならなくなります。


減色処理

UNIXではImageMagicに含まれるconvertを使って減色処理を行ないます。
convert -colors 使用する色数 input_file output_file
-ditherオプションを付けるとディザ処理も行ないます。

例えばmypict.gifというファイルを20色に減色する場合は

convert -colors 20 mypict.gif mypict_20.gif
とします。これでmypict_20.gifは20色のgifファイルになっています。

透明化

GIFファイルを透明化するにはgiftoolやgiftransといったプログラムを使いま す。giftoolはsharewareです。

ここでは、giftransを使った透明化について説明します。

giftrans -t #透明化したいカラー -o outfile inputfile
透明化したいカラーは-tの後に#ffffffのように#に続けて16進数6桁で指定し ます。 画像ファイルに使われているカラーを調べるには
giftrans -l inputfile
を実行してください。

インターレース化

GIFファイルはインターレースにしておくと、インターレース形式の表示に対 応したブラウザを使うと、最初、ぼやけた表示から徐々に鮮明に表示されます。

UNIXではgiftoolやPBMPLUSに含まれるgiftopnm,pnmtogifを使用します。 Macintoshではgifconverterなどが使えるようです。 ここではPBMPLUSのgiftopnm,pnmtogifを組合わせて使う方法を紹介します。

giftoppm GIFfile | ppmtogif -interlace > interlacedGIFfile

最近のImagemagickのdisplayで画像をgifで保存すると、標準でインターレー ス形式で保存するようです。displayだと減色処理も行えるので便利です。


GIFアニメーション

GIFの絵を使ってアニメーションを作れます。 GIFアニメを作るためのツールはいくつかありますが、センターではImageMagick のconvertを利用します。
convert -delay 20 anime1.gif -delay 20 anime2.gif .. -delay 20 anemeX.gif anime.gif
これでanime1.gifからanimeX.gifまでの画像をまとめたanime.gifが作られます。 このファイルを<IMG SRC>を使って指定すると、Netscapeなどで見た場合、アニ メーションとして再生されます。"-delay"オプションは次の絵を表示するための 待ち時間で、単位は1/100秒です。アニメーションをループさせたい場合は "-loop 回数" をconvertの引数に指定してください。
convert -loop 8 anime*.gif animation.gif
より詳しくは ImageMagickのページを御覧下さい。
Last modified:
naosone@naruto-u.ac.jp