using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; using System.Text; using TransCore.Common.Drawing; namespace CreateAnimatedGif { class Program { static void Main(string[] args) { #region Old class Console.WriteLine("Begin AnimatedGifEncoder Test"); DateTime beginTime = DateTime.Now; AnimatedGifEncoder animatedGifEncoder = new AnimatedGifEncoder(); animatedGifEncoder.SetDelay(3000); animatedGifEncoder.Start("C:\\TestProjects\\AnimatedGif\\CreateAnimatedGif\\Output\\oldAnimated.gif"); foreach (string fileName in Directory.GetFiles("C:\\TestProjects\\AnimatedGif\\CreateAnimatedGif\\Data")) { using (var image = Image.FromFile(fileName)) { animatedGifEncoder.AddFrame(image); } } animatedGifEncoder.Finish(); Console.WriteLine("Time to create animated gif: {0}", DateTime.Now.Subtract(beginTime).ToString()); #endregion #region New class string[] imageFiles = Directory.GetFiles("C:\\TestProjects\\AnimatedGif\\CreateAnimatedGif\\Data"); Console.WriteLine("\nBegin ImageUtility Test"); beginTime = DateTime.Now; ImageUtility imageUtility = new ImageUtility(); imageUtility.CreateAnimatedGif("C:\\TestProjects\\AnimatedGif\\CreateAnimatedGif\\Output\\newAnimated.gif", imageFiles); //imageUtility.CreateAnimatedGif("C:\\TestProjects\\AnimatedGif\\CreateAnimatedGif\\Output\\newAnimated.gif", imageFiles, 3, 100); Console.WriteLine("Time to create animated gif: {0}", DateTime.Now.Subtract(beginTime).ToString()); #endregion #region Compare files if (1 == 0) { FileStream fileStream = new FileStream("C:\\TestProjects\\AnimatedGif\\CreateAnimatedGif\\Output\\oldAnimated.gif", FileMode.Open); byte[] oldGifArray = new byte[fileStream.Length]; fileStream.Read(oldGifArray, 0, (int)fileStream.Length); fileStream.Dispose(); fileStream = new FileStream("C:\\TestProjects\\AnimatedGif\\CreateAnimatedGif\\Output\\newAnimated.gif", FileMode.Open); byte[] newGifArray = new byte[fileStream.Length]; fileStream.Read(newGifArray, 0, (int)fileStream.Length); fileStream.Dispose(); int idx = 0; do { Console.WriteLine("\n\n\tOld File\t\tNew File"); for (int count = 0; count < 30; count++) { string log = string.Format("{0}\t{1}\t\t{2}", idx, (idx < oldGifArray.Length ? oldGifArray[idx].ToString() : ""), ("\t\t" + (idx < newGifArray.Length ? newGifArray[idx].ToString() : ""))); Console.WriteLine(log); ++idx; } Console.WriteLine("\nPress any key to continue"); Console.ReadKey(true); } while (idx < oldGifArray.Length || idx < newGifArray.Length); } #endregion Console.WriteLine("\nPress any key to close console window."); Console.ReadKey(true); } } }