Exemplo n.º 1
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage: SwfExport <file.swf>");
                return;
            }
            var file = args[0];
            if (!File.Exists(file))
            {
                Console.WriteLine("File not found");
                return;
            }
            try
            {

                Console.WriteLine("Loading swf");

                var sr = new SwfDotNet.IO.SwfReader(File.OpenRead(file));
                var swf = sr.ReadSwf();
                var tags = swf.Tags.Cast<BaseTag>().ToList();

                Console.WriteLine("Gettings assets");

                var asserts = new List<Assert>();
                asserts.AddRange(GetSymbolClasses(tags));
                asserts.AddRange(GetExportAsserts(tags));

                Console.WriteLine("Loading images");

                var imgs = GetImages(tags);

                Console.WriteLine("Dumping images");

                if (!Directory.Exists("output"))
                    Directory.CreateDirectory("output");
                if (!Directory.Exists("output\\unknown"))
                    Directory.CreateDirectory("output\\unknown");

                var sw = Stopwatch.StartNew();
                int i = 0;
                foreach (var img in imgs)
                {
                    var asset = asserts.Find(a => a.TargetCharacterId == img.Item1);
                    var name = (asset != null ? asset.Name : "unknown\\" + img.Item1.ToString(CultureInfo.InvariantCulture)) + ".png";
                    img.Item2.Save("output\\" + name, ImageFormat.Png);
                    i++;
                    if (sw.ElapsedMilliseconds > 2000)
                    {
                        Console.WriteLine("Progress {0}/{1}", i, imgs.Count);
                        sw.Restart();
                    }
                }

                Console.WriteLine("Success");

            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex);
            }
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage: SwfExport <file.swf>");
                return;
            }
            var file = args[0];

            if (!File.Exists(file))
            {
                Console.WriteLine("File not found");
                return;
            }
            try
            {
                Console.WriteLine("Loading swf");

                var sr   = new SwfDotNet.IO.SwfReader(File.OpenRead(file));
                var swf  = sr.ReadSwf();
                var tags = swf.Tags.Cast <BaseTag>().ToList();

                Console.WriteLine("Gettings assets");

                var asserts = new List <Assert>();
                asserts.AddRange(GetSymbolClasses(tags));
                asserts.AddRange(GetExportAsserts(tags));

                Console.WriteLine("Loading images");

                var imgs = GetImages(tags);

                Console.WriteLine("Dumping images");

                if (!Directory.Exists("output"))
                {
                    Directory.CreateDirectory("output");
                }
                if (!Directory.Exists("output\\unknown"))
                {
                    Directory.CreateDirectory("output\\unknown");
                }

                var sw = Stopwatch.StartNew();
                int i  = 0;
                foreach (var img in imgs)
                {
                    var asset = asserts.Find(a => a.TargetCharacterId == img.Item1);
                    var name  = (asset != null ? asset.Name : "unknown\\" + img.Item1.ToString(CultureInfo.InvariantCulture)) + ".png";
                    img.Item2.Save("output\\" + name, ImageFormat.Png);
                    i++;
                    if (sw.ElapsedMilliseconds > 2000)
                    {
                        Console.WriteLine("Progress {0}/{1}", i, imgs.Count);
                        sw.Restart();
                    }
                }


                Console.WriteLine("Success");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex);
            }
        }