※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

GIFは「GIF(47,49,46(16進数))」の3byteで始まる。
(参考:文字コード表)
http://ipl.sfc.keio.ac.jp/text/info-2002-4/10/10_3.html
以下、ヘッダーの内容。(先頭からの並び順)
内容 サイズ 備考
GIF 3byte
GIFのバージョン 3byte 89aとか。
2byte
高さ 2byte
GlobalColorTableの有無 1bit 0:無 1:有
色数 3bit この値+1
SortFlag(GlobalColorTableがSortされているか) 1bit 0:無 1:有
Global Color Tableの個数 3bit 2の(この値+1)乗
: 2byte
GlobalColorTable (3*2^(Global Color Tableの個数+1))byte Global Color Table Flagが1の場合に存在
例)高さが[20,03]の順で表示された場合、値を割り出すのにバイトの順序は逆になり、
0320(16進数)→800(10進数)で
800pxとなる。


  • 透過GIF
透過GIFかどうかは、ブロック「Graphic Control Extension」を調べる。
このブロックは[21,f9]で始まる。
このブロックのサイズが1byteで続き、
次の1byteの最後の1bitで透過かどうかがわかる。
1:透過有 0:透過なし

  • アニメーション
GIFアニメーションは
ヘッダー
Application Extension([21,ff]で始まる)
:
Graphic Control Extension
Image Block([2c]で始まる)
以降、Graphic Control ExtensionとImage Blockの繰り返し
:
Trailer(データの終わり。[3b]1byte)
という構造のもの。
通常は、
ヘッダー
Graphic Control Extension
Image Block
Trailer