예제 #1
0
파일: Generator.cs 프로젝트: sami1971/Eto
        public Generator()
        {
            // generator to use for scenarios where direct 2d doesn't work (e.g. printing)
            BaseGenerator = new Eto.Platform.Windows.Generator();

            Eto.Platform.Windows.Generator.AddTo(this);

            // This is added after the base class's assembly
            AddTo(this);
        }
예제 #2
0
파일: Generator.cs 프로젝트: Exe0/Eto
        public Generator()
        {
			// generator to use for scenarios where direct 2d doesn't work (e.g. printing)
			BaseGenerator = new Eto.Platform.Windows.Generator();

			Eto.Platform.Windows.Generator.AddTo(this);

            // This is added after the base class's assembly
			AddTo(this);
        }
예제 #3
0
        public static void Start(string[] args)
        {
            if (args == null || args.Length < 2)
            {
                Console.WriteLine("Usage: TestPablo.exe <InputFile.ext> <OutputFile.ext> [<option>=<value>, ...]");
                Console.WriteLine();
                Console.WriteLine("Global options:");
                Console.WriteLine("\tzoom = zoom factor, where 1.0 is full size.  (default is 1.0)");
                Console.WriteLine();
                Console.WriteLine("Character format options:");
                Console.WriteLine("\tdosaspect = true|false (default is false)");
                Console.WriteLine("\tuse9x = true|false  (default is false)");
                Console.WriteLine();
                Console.WriteLine("RIP format options:");
                Console.WriteLine("\tdosaspect = true|false  (default is false)");
                return;
            }
            string fileToLoad = args[0];
            string fileToSave = args[1];

            var options = new Dictionary <string, string>();

            if (args.Length > 2)
            {
                for (int i = 2; i < args.Length; i++)
                {
                    string[] split = args[i].Split('=');
                    if (split.Length != 2)
                    {
                        Console.WriteLine("Invalid option {0}", args[i]);
                        return;
                    }
                    options[split[0]] = split[1];
                }
            }

            var start = DateTime.Now;

            // use appropriate api
            Generator generator;

            /*if (Platform.IsUnix) generator = new Eto.Platform.GtkSharp.Generator(); // hm, gtk doesn't like working without a GUI..
             * else*/
            generator = new Eto.Platform.Windows.Generator();

            var formats = GetFormats();

            var sourceFormat = formats.FindFormat(fileToLoad);

            if (sourceFormat == null)
            {
                Console.WriteLine("Error: Cannot find format to use for file '{0}'", fileToLoad);
                return;
            }

            var destinationFormat = sourceFormat.Info.GetCompatibleDocuments().FindFormat(fileToSave);

            if (destinationFormat == null)
            {
                Console.WriteLine("Error: Cannot find format conversion from '{0}.{1}' format to file '{2}'", sourceFormat.Info.ID, sourceFormat.ID, fileToSave);
                return;
            }

            var sourceDoc = sourceFormat.Info.Create(generator);

            sourceDoc.Info.SetOption("animation", "false");
            var sourceHandler = sourceDoc.CreateHandler();

            foreach (var option in options)
            {
                if (string.Equals(option.Key, "zoom", StringComparison.InvariantCultureIgnoreCase))
                {
                    sourceHandler.Zoom = float.Parse(option.Value);
                }
                else if (!sourceDoc.Info.SetOption(option.Key, option.Value))
                {
                    Console.WriteLine("Option '{0}' is invalid or could not be set to '{1}'", option.Key, option.Value);
                    return;
                }
            }
            sourceDoc.Load(fileToLoad, sourceFormat, sourceHandler);

            using (var destinationStream = new FileStream(fileToSave, FileMode.Create, FileAccess.Write))
            {
                sourceHandler.Save(destinationStream, destinationFormat);
            }
            var elapsed = DateTime.Now - start;

            Console.Write("Succesfully converted '{0}' ('{1}.{2}') to '{3}' ('{4}.{5}')", fileToLoad, sourceFormat.Info.ID, sourceFormat.ID, fileToSave, destinationFormat.Info.ID, destinationFormat.ID);
            Console.WriteLine(" in {0} seconds", elapsed.TotalSeconds);
        }