Пример #1
0
        private void btnGenerate_Click(object sender, EventArgs e)
        {
            if (!InputIsValid())
            {
                return;
            }

            StartGenerate();

            var generator = new ZoomableImageGenerator();

            generator.Progress += (s, ea) =>
            {
                pbGenerating.Value = (int)ea.Progress;
                Application.DoEvents();
            };

            try
            {
                generator.InputFilePath = txtSource.Text;
                generator.OutputDirPath = txtOutput.Text;
                generator.BaseName      = txtBaseName.Text;
                generator.FileStructure = txtFileStructure.Text;
                generator.TileSize      = (int)nudTileSize.Value;

                switch ((string)cmbImageFormat.SelectedItem)
                {
                case "PNG":
                    generator.TileImageFormat = TileImageFormat.PNG;
                    break;

                default:
                    generator.TileImageFormat = TileImageFormat.JPEG;
                    break;
                }

                generator.TileJpegQuality = (int)nudJpegQuality.Value;
                generator.TileSize        = (int)nudTileSize.Value;

                generator.ViewerCreation = chbViewerCreation.Checked;
                generator.ViewerWidth    = (int)nudViewerWidth.Value;
                generator.ViewerHeight   = (int)nudViewerHeight.Value;

                generator.Generate();

                if (chbViewerCreation.Checked && chbOpenInWebBrowser.Checked)
                {
                    System.Diagnostics.Process.Start(Path.Combine(txtOutput.Text, txtBaseName.Text + ".htm"));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            EndGenerate();
        }
Пример #2
0
        static void Main(string[] args)
        {
            if (args == null || args.Length < 2)
            {
                ShowHelp();
                return;
            }

            var tileGenerator = new ZoomableImageGenerator();

            tileGenerator.Progress += (s, e) => {
                Console.WriteLine("{0:F2}%", e.Progress);
            };


            try
            {
                tileGenerator.InputFilePath = args[0];
            }
            catch (Exception e)
            {
                Console.WriteLine("Incorrect [INPUT FILE]\r\n  {0}", e.Message);
                return;
            }


            try
            {
                tileGenerator.OutputDirPath = args[1];
            }
            catch (Exception e)
            {
                Console.Write("Incorrect [OUTPUT FILE]\r\n  {0}", e.Message);
                return;
            }


            int i = 2;

            while (i < args.Length)
            {
                //Only -v option can be passed without additional data
                if (args[i] != "-v" && i + 1 >= args.Length)
                {
                    ShowHelp();
                    return;
                }

                switch (args[i])
                {
                case "-v":
                    tileGenerator.ViewerCreation = true;
                    i--;
                    break;

                case "-b":
                    try
                    {
                        tileGenerator.BaseName = args[i + 1];
                    }
                    catch (Exception e)
                    {
                        Console.Write(e.Message);
                        return;
                    }
                    break;

                case "-w":
                    int viewerWidth;

                    if (!Int32.TryParse(args[i + 1], out viewerWidth) || viewerWidth < 1)
                    {
                        ShowHelp();
                        return;
                    }

                    tileGenerator.ViewerWidth = viewerWidth;
                    break;

                case "-h":
                    int viewerHeight;

                    if (!Int32.TryParse(args[i + 1], out viewerHeight) || viewerHeight < 1)
                    {
                        ShowHelp();
                        return;
                    }

                    tileGenerator.ViewerHeight = viewerHeight;
                    break;

                case "-t":
                    int tileSize;

                    if (!Int32.TryParse(args[i + 1], out tileSize) || tileSize < 1)
                    {
                        ShowHelp();
                        return;
                    }

                    tileGenerator.TileSize = tileSize;
                    break;

                case "-f":
                    switch (args[i + 1])
                    {
                    case "JPEG":
                        tileGenerator.TileImageFormat = TileImageFormat.JPEG;
                        break;

                    case "PNG":
                        tileGenerator.TileImageFormat = TileImageFormat.PNG;
                        break;

                    default:
                        ShowHelp();
                        return;
                    }
                    break;

                case "-q":
                    int tileJpegQuality;

                    if (!Int32.TryParse(args[i + 1], out tileJpegQuality) || tileJpegQuality < 0 || tileJpegQuality > 100)
                    {
                        ShowHelp();
                        return;
                    }

                    tileGenerator.TileJpegQuality = tileJpegQuality;
                    break;

                case "-s":
                    try
                    {
                        tileGenerator.FileStructure = args[i + 1];
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                        return;
                    }
                    break;

                default:
                    ShowHelp();
                    return;
                }

                i += 2;
            }

            try
            {
                tileGenerator.Generate();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }