いつも忘れるGIF仕様書の覚え書き
GIF Animation Maker CGIを提供し始めてから結構な時間が経過しています。GIF Animation Maker CGIを作成していた頃は、GIF仕様書やGIF関連サイトを巡ってプログラミングした覚えがあります。しかしながら、苦労して得た知識はドンドン忘れていきました。そして、毎回改良する度にウェブ検索し、資料に辿り着いていました。
そして、後日公開予定の「JPG,PNG,GIF対応GIF Animation Maker CGI」では、GIF特許(LZW特許)も失効したため、ImageMagickを利用してGIF画像以外にも対応させています。するとますますGIF仕様書には関わらなくなります。それは、私にとって重大な損失だと思いますので、GIF仕様書の覚え書きとしてメモしておきたいと思います。
GIF Format (GIF87a)
- GIF Header
- Image Block
- Trailer
GIF Format (GIF89a)
- GIF Header
- Graphic Control Extension
- Image Block
- Trailer
GIF Format (GIF87a, GIF89a)
- GIF Header
- [Header][6 Bytes]
- Signature [3 Bytes] = 'GIF'
- Version [3 Bytes] = '87a'(1987/5) or '89a'(1989/7)
- [Logical Screen Descriptor][4 Bytes]
- Logical Screen Width [2 Bytes Unsigned]
- Logical Screen Height [2 Bytes Unsigned]
- [Packed Fields][1 Byte]
- Global Color Table Flag [1 Bit]
- Color Resolution [3 Bits]
- Sort Flag [1 Bit]
- Size of Global Color Table [3 Bits]
- Background Color Index [1Byte]
- Pixel Aspect Ratio [1Byte]
- Global Color Table [(0-255)*3 Bytes]
- [Header][6 Bytes]
- [Image Descriptor]
- Image Separator [1 Byte] = 0x2c
- Image Left Position [2 Bytes Unsigned]
- Image Top Position [2 Bytes Unsigned]
- Image Width [2 Bytes Unsigned]
- Image Height [2 Bytes Unsigned]
- [Packed Fields][1 Byte]
- Local Color Table Flag [1 Bit]
- Interlace Flag [1 Bit]
- Sort Flag [1 Bit]
- Reserved [2 Bits]
- Size of Local Color Table [3 Bits]
- Local Color Table [(0-255)*3 Byte]
- [Table Based Image Data]
- LZW Minimum Code Size [1 Byte]
- Image Data [Data Sub-blocks]
- [Graphic Control Extension]
- [Graphic Control Extension]
- [Comment Extension]
- [Plain Text Extension]
- [Application Extension]
- Trailer [1 Byte] = 0x3b
GIF仕様書(GIF Specification Sheet)
- GIF89a仕様書 (GIF89a Specification Sheet)
- GIF87a仕様書 (GIF87a Specification Sheet)
Posted By PONTA : 2005/06/19-18:41