Esempio n. 1
0
        public static void CreateAnimatedGif(
            List <string> gifFiles,
            int delay,
            string outputFile)
        {
            delay /= 10; // 100th of a second

            FileStream   fs     = new FileStream(outputFile, FileMode.Create, FileAccess.ReadWrite);
            BinaryWriter writer = new BinaryWriter(fs);

            byte[] gif_Signature = new byte[] { (byte)'G', (byte)'I', (byte)'F', (byte)'8', (byte)'9', (byte)'a' };
            writer.Write(gif_Signature);

            for (int i = 0; i < gifFiles.Count; i++)
            {
                GifClass gif = new GifClass();
                gif.LoadGifPicture(gifFiles[i]);

                if (i == 0)
                {
                    writer.Write(gif.m_ScreenDescriptor.ToArray());
                }

                writer.Write(GifCreator.CreateGraphicControlExtensionBlock(delay));
                writer.Write(gif.m_ImageDescriptor.ToArray());
                writer.Write(gif.m_ColorTable.ToArray());
                writer.Write(gif.m_ImageData.ToArray());
                gif.Close();
            }

            writer.Write(GifCreator.CreateLoopBlock());
            writer.Write((byte)0x3B); //End file
            fs.Close();
            writer.Close();
        }
Esempio n. 2
0
        public static void CreateAnimatedGif(
            List<string> gifFiles,
            int delay,
            string outputFile)
        {
            delay /= 10; // 100th of a second

            FileStream fs = new FileStream(outputFile, FileMode.Create, FileAccess.ReadWrite);
            BinaryWriter writer = new BinaryWriter(fs);
            byte[] gif_Signature = new byte[] { (byte)'G', (byte)'I', (byte)'F', (byte)'8', (byte)'9', (byte)'a' };
            writer.Write(gif_Signature);

            for (int i = 0; i < gifFiles.Count; i++)
            {
                GifClass gif = new GifClass();
                gif.LoadGifPicture(gifFiles[i]);

                if (i == 0)
                    writer.Write(gif.m_ScreenDescriptor.ToArray());

                writer.Write(GifCreator.CreateGraphicControlExtensionBlock(delay));
                writer.Write(gif.m_ImageDescriptor.ToArray());
                writer.Write(gif.m_ColorTable.ToArray());
                writer.Write(gif.m_ImageData.ToArray());
                gif.Close();
            }

            writer.Write(GifCreator.CreateLoopBlock());
            writer.Write((byte)0x3B); //End file
            fs.Close();
            writer.Close();
        }