CONTENTS
| 名称 | 役割 | 設置 | 解説 |
|---|---|---|---|
| PNGシグネチャ | 識別部 | 必須 | PNGフォーマットであることを示す。 |
| IHDRチャンク | ヘッダ | 必須 | 画像サイズなどの基本情報。 |
| 補助チャンク | 推奨 | 色の表示に関する補助データ。 | |
| PLTEチャンク | パレット |
最大256色分のパレット情報。 IHDRチャンクに含まれるカラー・モードによって有無が変わる。 |
|
| 補助チャンク | 推奨 | パレットと透過に関する補助データ。 | |
| 追加チャンク | 任意 | ||
| IDATチャンク | データ | 必須 | 画像データ本体。複数あっても良い。 |
| 補助チャンク | 推奨 | テキストデータ。どこに設置しても良い。 | |
| 追加チャンク | 任意 | GIFなどに関するデータ。どこに設置しても良い。 | |
| IENDチャンク | 終端 | 必須 | PNGファイルの終りを示す。 |
| PNGシグネチャ |
89 50 4E 47 0D 0A 1A 0A 固定 |
|||
|---|---|---|---|---|
| (チャンク構造) |
データ長 4バイト |
チャンク名 4バイト |
データ部 データ長に記述されたバイト数 |
CRC 4バイト |
| IHDRチャンク |
00 0D 固定 |
49 48 44 52 固定 |
(後述) | 算出 |
| cHRMチャンク | ||||
| gAMAチャンク | ||||
| sBITチャンク | ||||
| sRGBチャンク | ||||
| iCCPチャンク | ||||
| PLTEチャンク | データ長による |
50 4C 54 45 固定 |
(後述) | 算出 |
| チャンク | ||||
| IDATチャンク | データ長による |
49 44 41 54 固定 |
(後述) | 算出 |
| IENDチャンク |
00 00 固定 |
49 45 4E 44 固定 |
(なし) 0バイト |
AE 42 60 82 固定 |
|
画像の幅 4バイト |
画像の高さ 4バイト |
ビットの深さ 1バイト |
カラー・タイプ 1バイト |
圧縮方式 1バイト |
フィルター方式 1バイト |
インタレース方式 1バイト |
| ビットの深さ | カラー・タイプ | PLTEチャンク | ||||||
|---|---|---|---|---|---|---|---|---|
| 10進数 | 2進数 | |||||||
| 1 | 2 | 4 | 8 | 16 | グレースケール | 0 | 0000 | 不要 |
| 8 | 16 | RGB | 2 | 0010 | 任意 | |||
| 1 | 2 | 4 | 8 | パレット | 3 | 0011 | 必須 | |
| 8 | 16 | 4 グレースケール+α | 4 | 0100 | 不要 | |||
| 8 | 16 | 6 RGB+α | 6 | 0110 | 任意 | |||
|
パレット・データ 3バイト |
パレット・データ 3バイト |
…… |
パパレット・データ 3バイト |
||||||
|
赤の値 1バイト |
緑の値 1バイト |
青の値 1バイト |
赤の値 1バイト |
緑の値 1バイト |
青の値 1バイト |
赤の値 1バイト |
緑の値 1バイト |
青の値 1バイト |
|
Deflateアルゴリズムによる圧縮データ。
DeflateアルゴリズムはPNGの他にも、ZIPやGZIPなどに採用されている。詳しい仕様はリンク先参照のこと。