「[バイナリデータ]データ構造(PNG)」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
PNGは次の8バイトで始まる。
89,50,4e,47,0d,0a,1a,0a(16進数)
それ以降は、チャンクと呼ばれるブロックの連続。
-チャンクの構造
[データ長(4byte)][データ名(4byte)][データ(データ長に書いてあるbyte)][CRC(4byte)]
-イメージのサイズや色数はIHDRチャンクに入っている。
IHDRチャンクの、データの中の順序
[幅(4byte)][高さ(4byte)][ビットの深さ(1byte)][カラータイプ(1byte)]・・・
例)幅が[00,00,03,20]だったら、
320(16進数)→800(10進数)で、
800pxとなる。
-透過
透過画像かどうかは、IHDRチャンクのカラータイプまたは、tRNSチャンクによって設定されている。
カラータイプの場合、
0 = グレイスケール
2 = RGB
3 = パレット
4 = グレイスケール+アルファ
6 = RGB+アルファ
で、アルファチャネルを含んでいる(4か6)場合は、透過。
アルファチャネルがなく、tRNSチャンクがある場合はtRNSチャンクの中で設定された色が透過させる色。