「[バイナリデータ]データ構造(GIF)」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
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|