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などに採用されている。詳しい仕様はリンク先参照のこと。