前回はMagickNetでアニメーションGIFを作りました。
今回は、作ったアニメーションGIFをフレームごとに分解して一つ一つのgifファイルとして保存します。
MagickNetだと、かなり簡単にできるようになっていますので、いきなりサンプルコードを載せます。
普段のMagickImageではなくMagickImageCollectionとしてファイルを読み込ませるだけです。
それだけで各フレームがMagickImageのインスタンスとしてコレクションされているので、1つずつファイルに保存するだけです。
        private static void GIFアニメーションからフレームごとにファイルを分割するよ()
        {
            var path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "animation.gif");
            //アニメーションGIFをMagickImageCollectionとして読み込む
            using (var imageCollection = new MagickImageCollection(path))
            {
                var frameNo = 1;
                foreach (var image in imageCollection)
                {
                    //コレクション中の要素を保存する
                    var outputPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), string.Format("frame{0}.gif",frameNo++));
                    image.Write(outputPath);
                }
            }
        }
すると結果として以下のように各フレームが単体のGIFファイルとして出力されます。
このように、簡単に分解することが可能です。
一部だけ載せます。(frame1から4)



