オフセット | 内容(バイト数) |
---|---|
0 | 拡張ブロック開始識別子(1) 固定値21H |
1 | コメント拡張識別子(1) 固定値FEH |
2 | サブブロックのバイト数(1) 1-255 |
3 | コメント(255以内) ASCIIテキスト文字 |
: | : |
サブブロックのバイト数(1) 1-255 | |
コメント(255以内) ASCIIテキスト文字 | |
ブロック終了識別子(1)固定値0 |
画像データに関するコメント、作者、説明などのテキスト情報を保存したブロックで、画像表示には影響を与えません。 1つのGIFファイル中にいくつでも存在でき、イメージデータブロックの後に置かれることもあります。
拡張ブロックの開始を表す識別子で、常に固定値21H(10進数では33)です。 この識別子は全ての拡張ブロックで共通です。
この拡張ブロックがコメント拡張ブロックであることを表す識別子で、常に固定値FEH(10進数では254)です。
直後に続くコメントのバイト数で、1から255の間の任意の値です。
ASCIIのテキスト文字からなる、255文字以内のコメントデータです。 サブブロックバイト数とコメントの対をサブブロックといい、コメント拡張ブロック中にいくつでも存在できます。
コメント拡張ブロックの終了を表す識別子で、常に固定値0です。
オフセット | 内容(バイト数) |
---|---|
0 | 拡張ブロック開始識別子(1) 固定値21H |
1 | プレーンテキスト拡張識別子(1) 固定値01H |
2 | ブロックのバイト数(1) 固定値12 |
3 | テキストグリッドの左端位置(2) ピクセル単位 |
5 | テキストグリッドの上端位置(2) ピクセル単位 |
7 | テキストグリッドの横幅(2) ピクセル単位 |
9 | テキストグリッドの高さ(2) ピクセル単位 |
11 | グリッド中のセルの横幅(1) ピクセル単位 |
12 | グリッド中のセルの高さ(1) ピクセル単位 |
13 | テキストのカラーインデックス(1) |
14 | 背景のカラーインデックス(1) |
15 | サブブロックのバイト数(1) 1-255 |
16 | テキストデータ(255以内) ASCIIテキスト文字 |
: | : |
ブロック終了識別子(1) 固定値0 |
画像として表示するテキストデータと、それをディスプレイ上に表示するために必要なパラメータを保存したブロックです。 このブロックはグラフィック拡張ブロックのデータの影響を受けますので、グラフィック拡張ブロックがある場合には、それより後に置かれる必要があります。 そして、1つのGIFファイル中にいくつでも存在できます。
拡張ブロックの開始を表す識別子で、常に固定値21H(10進数では33)です。 この識別子は全ての拡張ブロックで共通です。
この拡張ブロックがコメント拡張ブロックであることを表す識別子で、常に固定値01H(10進数では1)です。
論理画面の左端を0とした時の、テキストグリッドの左端のカラム位置をピクセル単位で表した値です。 テキストグリッドとは、プレーンテキストを表示する領域のことです。
|
論理画面の上端を0とした時の、テキストグリッドの上端のカラム位置をピクセル単位で表した値です。
テキストグリッドの横幅と高さをピクセル単位で表した値です。
テキストグリッド中のキャラクターセルの横幅と高さをピクセル単位で表した値です。 キャラクターセルとは、プレーンテキストの1文字を表示する領域のことです。
プレーンテキストを表示するのに用いる色の、グローバルカラーテーブルのインデックスです。
プレーンテキストの背景、つまりテキストグリッド中の、文字以外の地の部分を表示するのに用いる色の、グローバルカラーテーブルのインデックスです。
直後に続くプレーンテキストのバイト数で、1から255の間の任意の値です。
ASCIIのテキスト文字からなる、255文字以内のプレーンテキストデータです。 サブブロックバイト数とテキストデータからなるサブブロックは、プレーンテキスト拡張ブロック中にいくつでも存在できます。
プレーンテキスト拡張ブロックの終了を表す識別子で、常に固定値0です。
オフセット | 内容(バイト数) |
---|---|
0 | 拡張ブロック開始識別子(1) 固定値21H |
1 | アプリケーション拡張識別子(1) 固定値FFH |
2 | ブロックのバイト数(1) 固定値11 |
3 | アプリケーション識別名(8) ASCII文字 |
11 | アプリケーション識別コード(3) |
14 | サブブロックのバイト数(1) 1-255 |
15 | アプリケーションデータ(255以内) |
: | : |
ブロック終了識別子(1) 固定値0 |
各種のアプリケーションが独自に使う固有の情報を保存したブロックで、アプリケーションごとに内容が違うため、原則として互換性はありません。 1つのGIFファイル中に複数個存在できますが、個数や位置はアプリケーションによって異なります。
ちなみにネットスケープによるアニメーションGIFは、このアプリケーション拡張ブロックを利用して複数のイメージデータを連続表示し、簡易アニメーション表示を行うものです。 その場合、アプリケーション拡張ブロックは特殊用途ブロックの最初にひとつだけ存在し、固有データとしてアニメーション表示の繰り返し回数を保存しています。
拡張ブロックの開始を表す識別子で、常に固定値21H(10進数では33)です。 この識別子は全ての拡張ブロックで共通です。
この拡張ブロックがアニメーション拡張ブロックであることを表す識別子で、常に固定値FFH(10進数では255)です。
直後に続くブロックのバイト数で、常に固定値11です。
このブロックを使用するアプリケーションの識別名を、8個のASCIIテキスト文字で表したデータです。 アニメGIFの場合は「NETSCAPE」という文字が入っています。
このブロックを使用するアプリケーションの識別コードで、3バイトの任意のコードです。 アニメGIFの場合はASCIIテキスト文字で「2.0」というバージョン番号が入っています。
直後に続くアプリケーション固有データのバイト数で、1から255の間の任意の値です。
オフセット | 内容(バイト数) |
---|---|
0 | サブブロックのバイト数(1) 固定値3 |
1 | 繰り返しフラッグ?(1) 1:実行/0:非実行?(固定値1) |
2 | 繰り返し回数(2) 0の場合は無限に繰り返す |
アプリケーション固有の、255バイト以内の任意のデータです。 サブブロックバイト数とアプリケーションデータからなるサブブロックは、アプリケーション拡張ブロック中にいくつでも存在できます。
アニメGIFの場合、サブブロックはひとつだけで、左表のようなデータ構造をしています。 ネットスケープ以外のブラウザ、例えばエクスプローラ(Ver.3.0以上)でも、このネットスケープ用のアプリケーションデータを利用して簡易アニメーション表示を行いますが、1バイト目のデータと繰り返し回数の解釈はブラウザによって異なるようです。
アプリケーション拡張ブロックの終了を表す識別子で、常に固定値0です。