2019年2月28日木曜日

アニメーションPNGの中身(第3回 実ファイルに入っているチャンク)

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

前回はアニメーションPNGのチャンクの並びを紹介しました。
今回は実際のAPNGファイルのチャンク構造を見てみます。

次の画像は実際のAPNGファイルをバイナリエディタで開いた所です。チャンク名を反転してマークしました

バイナリエディタで開いたPNGファイル
PNGファイルの先頭部分
ファイルは ".PNG" で始まって、IHDRチャンク、pHYsチャンク、tEXtチャンク、acTLチャンクと続いてIDATチャンクが見えます。IDATチャンクは長いので続きは省略しましたが、この後にもたくさんのチャンクが続いています。
tEXtチャンクにはコメントが格納されますが、中にAdobeの文字が有ります。実際このPNGファイルはAdobe Illustratorで作成した画像をアニメーションPNGに組み立てた物です。

チャンクはそのチャンクのデータ長を表す4バイトで始まり、4文字のチャンク名、データ部、4バイトのCRCで構成されます。
最初に見えるIHDRチャンクは以下の構造になっています。
  • ADDRESS:00000008 - 0000000B
     データ部の長さ(0000000D=13バイト)
  • ADDRESS:0000000B - 0000000F
     チャンク名"IHDR"
  • ADDRESS:00000010 - 0000001C
     0Dバイト(10進数で13バイト)のデータ部
  • ADDRESS:0000001D - 00000020
     CRC
その後に次のチャンクが続いていきます。
この構造のおかげで、ダウンロードの途中でもダウンロード済みのコマ(チャンク)までの再生ができる様になっています。考えた人は賢いですね。

実際の作業としてバイナリエディタでチャンク構造を追いかけるのは大変なので、次回はチャンクを一覧表示する方法を紹介したいと思います。

アニメーションPNGの中身

0 件のコメント:

コメントを投稿