2019年2月25日月曜日

アニメーションPNGの中身(第2回 PNGファイルの中身)


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

前回PNGがチャンクの集まりである事を紹介しました。今回は基本的なアニメーションPNGの中身を説明します。

アニメーションPNGのファイルの中身は概ね次の順に並んでいます。
APNGのチャンクの並び
APNGのチャンクの並び
  1. マジックナンバー(. P N G [CR] [LF] [EOF] [LF])
    ファイルがPNGである事を表す固定の文字列。PNGファイルは必ずこの文字列で始まります。改行やファイル終端文字を含めて全部で8バイト有ります。
  2. ヘッダー(IHDR)
    画像サイズ、カラーモード、圧縮形式等の画像周辺情報が収められ、PNGファイルには必ず1つ存在します。
  3. アニメ制御(acTL)
    アニメーションPNGで追加されたチャンクです。アニメーションのコマ数と繰り返し回数が収められます。
  4. イメージデータ(IDAT)
    アニメーション非対応環境やアニメーション再生前に表示される画像データが入っています。アニメーションの1コマ目として使いまわす事もできます。
  5. フレーム制御(fcTL)
    次に表示するコマの表示時間や書き換え範囲等を格納します。
  6. フレームデータ(fdAT)
    表示するコマの画像データを収めるチャンクです。
  7. 終端(IEND)
    PNGデータの末端を示すチャンクです。これ以降にデータが続いていても表示画像に影響しない事になっています。
※イメージデータを1コマ目に流用する場合は、イメージデータの前にフレーム制御チャンクが入ります。
※これらのチャンク以外にも省略可能なチャンクが実ファイルには収録されています。

10コマなり20コマのアニメーションのコマ数分、フレーム制御(fcTL)とフレームデータ(fdAT)が繰り返し収録されます。コマ毎に表示時間が設定できるので、再生速度に強弱が付けられます。

LINEスタンプではIDATに入っている画像と最後のfdATで表示される画像が同じ意味に見えないとリジェクトされます。

次回は実ファイルに入っているチャンクを見てみたいと思います。


0 件のコメント:

コメントを投稿