2019年3月18日月曜日

PNGのチャンク 第1回 チャンクの構造

こんにちは、きまぐれソフトです。

以前、アニメーションPNGのチャンク構造を見てみましたが、今回からチャンクの詳細を説明していきます。

初回は全てのチャンクに共通する構造を紹介します。

チャンクは明確な始まりと終わりは無く、ファイルを先頭から読み進めないと何処から何処までが1つのチャンクなのかはっきりしません。決定しているのは1つ目のチャンクがファイルの先頭9バイト目から始まる事だけです。


チャンクはデータ部の長さを表す4バイトで始まり、4バイトのチャンク名、可変長のデータ部、4バイトのCRCで構成されます。つまり、チャンクの長さは開始位置にある4バイトが表す数値+12バイトとなります。

ここで示されるデータ長だけでなく、PNGファイル内で使われる整数値は先頭バイトが上位バイトと指定されています。いわゆるビッグエンディアンです。

CRCはチャンク名とデータ部を連結して計算します。計算式の説明は長くなるので割愛します。
以上が1つのチャンクであり、この直後にまた次のチャンクのデータ長、チャンク名・・・と続いていきます。

次回は必須チャンクについて説明しようと思います。


0 件のコメント:

コメントを投稿