示例#1
0
文件: Program.cs 项目: niallVR/Grite
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                ExitApp("No image provided!");
            }

            var imagePath = args[0];

            if (!imagePath.EndsWith(".gif"))
            {
                ExitApp("Image provided doesn't end in gif!");
            }

            if (!File.Exists(imagePath))
            {
                ExitApp($"{imagePath} Doesn't exist!");
            }

            Console.Out.WriteLine($"Loading {imagePath}...");

            // Load the image
            var inputImage  = Image.Load(imagePath);
            var frameCount  = inputImage.Frames.Count;
            var frameWidth  = inputImage.Frames[0].Width;
            var frameHeight = inputImage.Frames[0].Height;

            // Create a new image
            var spriteSheet = new SpriteSheet(frameCount, frameWidth, frameHeight);

            for (var i = 0; i < inputImage.Frames.Count; i++)
            {
                spriteSheet.AddImage(inputImage.Frames.CloneFrame(i));
            }

            // Validate the path
            var newPath = imagePath.Substring(0, imagePath.Length - 4) + ".png";

            if (File.Exists(newPath))
            {
                Console.Out.WriteLine($"There's already a file called {newPath}, press enter to replace.");
                Console.ReadLine();
            }

            // Save the image
            spriteSheet.Save(newPath);
            Console.Out.WriteLine($"Image saved as {newPath}");
        }