前回はその他に分類されるチャンクを説明しました。
今回はチャンクの並び順を紹介します。チャンクには並び順が決められていて、色に関する情報、特に色の補正情報が先に出現する様になっています。
もし、先に色番号が入った画像データが有り、カラーパレットが続き、色補正が出現するとします。すると、チャンクが現れる度に表示画像の色が変わったり、データの最後までチャンクを読み込まないと画像の表示が出来なくなったりします。折角インターレース表示ができる様に作られていますから、規則通り色情報から並べましょう。
順序を表にると以下の通りです。
| チャンク名 | 必須 | 繰り返し | 位置 |
|---|---|---|---|
| IHDR | 必須 | 不可 | 最初 |
| PLTE | 必須 | 不可 | IDATより前 |
| IDAT | 必須 | 可能 | IENDより前 |
| IEND | 必須 | 不可 | 最後 |
| cHRM | 省略可 | 不可 | PLTEとIDATの前 |
| gAMA | 省略可 | 不可 | PLTEとIDATの前 |
| iCCP | 省略可 | 不可 | PLTEとIDATの前、sRGBと排他使用 |
| sBIT | 省略可 | 不可 | PLTEとIDATの前 |
| sRGB | 省略可 | 不可 | PLTEとIDATの前、iCCPと排他使用 |
| bKGD | 省略可 | 不可 | PLTEとIDATの間 |
| hIST | 省略可 | 不可 | PLTEとIDATの間、PLTE存在時のみ使用可 |
| tRNS | 省略可 | 不可 | PLTEとIDATの間 |
| pHYs | 省略可 | 不可 | IDATより前 |
| sPLT | 省略可 | 可能 | IDATより前 |
| tIME | 省略可 | 不可 | どこでも可 |
| iTXt | 省略可 | 可能 | どこでも可 |
| tEXt | 省略可 | 可能 | どこでも可 |
| zTXt | 省略可 | 可能 | どこでも可 |
順序を表にすると以下の通りです。
順番の凡例は以下の通りとします。
| [CHNK] | 必須チャンクを表します。 |
| [CHNK]+ | 同じチャンクを1回以上繰り返します。 |
| [CHNK]* | 省略も含め、回数制限無し。 |
| [CHNK]- | チャンクは省略可能です。 |
| {[CHNK][CHNK]} | {}内のチャンクには順序は決められていません。 |
| {[CHNK]|[CHNK]} | {}内のチャンクのどれか1つだけ使用できます。 |
チャンクの出現順は以下の上から下への順となります。
| [IHDR] {{[iCCP] | [sRGB]}- [gAMA]- [cHRM]- [sBIT]-} [PLTE] {[tRNS]- [sPLT]- [pHYs]- [bKGD]- [hIST]-} [IDAT]+ [IEND] 順序規定無し [tEXt]* [zTXt]* [iTXt]* [tIME]- |

0 件のコメント:
コメントを投稿