Webpの画像はWin10ならWIC経由で取得可能だったけど、各フレームのディレイの取得方法がわからなかったので自作。
下記のWebPのファイルフォーマットを参照した。
developers.google.com
List<int> delay = new List<int>(); byte[] buff = new byte[stream.Length]; stream.Read(buff, 0, buff.Length); // WEBP if (System.Text.Encoding.ASCII.GetString(buff, 0, 4).Equals("RIFF")) { for (int i = 12; i < buff.Length - 8; i += 8) { string chname = System.Text.Encoding.ASCII.GetString(buff, i, 4); int chsize = BitConverter.ToInt32(buff, i + 4); if (chname.Equals("ANMF")) { int offset = i + 8 + 12; byte[] dbuff = { buff[offset], buff[offset + 1], buff[offset + 2], 0 }; delay.Add(BitConverter.ToInt32(dbuff, 0)); } i += chsize; } } return delay.ToArray();
これで自分用ツールのビューワをAnimatedWebPに対応。