public MainInterface() { InitializeComponent(); _fractalG = new FractalGenerator(pictureBoxFractal.Size); pictureBoxGraphics = pictureBoxFractal.CreateGraphics(); foreach(FractalType ft in Enum.GetValues(typeof(FractalType))) { comboFractType.Items.Add(ft); } comboFractType.SelectedIndex = 0; DataGenerationDone += DataGeneratedOk; _viewPort = new RectangleF(-1, -1, 2, 2); regenerate(); }
private void btExport_Click(object sender, EventArgs e) { int width, height; SaveFileDialog sfd; Bitmap im; FractalGenerator fractalG; String fileName; try { width = int.Parse(tbWidth.Text); height = int.Parse(tbHeight.Text); sfd = new SaveFileDialog(); sfd.DefaultExt = ".png"; sfd.AddExtension = true; sfd.CheckPathExists = true; sfd.Filter = "Image png (*.png)|*.png|Image jpeg (*.jpg)|*.jpg"; if (sfd.ShowDialog() == DialogResult.OK) { fileName = sfd.FileName; // Forced AA * 4 (size *2 on with, Height) _fractalP.width = width * 2; _fractalP.height = height * 2; _fractalP.viewPort.X = float.Parse(txtViewPosX.Text); _fractalP.viewPort.Y = float.Parse(txtViewPosY.Text); _fractalP.viewPort.Width = float.Parse(txtViewWidth.Text); _fractalP.viewPort.Height = float.Parse(txtViewHeight.Text); _fractalP.highQuality = true; this.Enabled = false; this.tbHeight.Enabled = false; this.tbWidth.Enabled = false; fractalG = new FractalGenerator(width, height); fractalG.generate(_fractalP, null); fractalG.generateImage(_renderP, null); im = fractalG.Image; this.Enabled = true; // 2x High quality downscaling Bitmap tmpImage = new Bitmap(width, height, im.PixelFormat); Graphics handle = Graphics.FromImage(tmpImage); handle.InterpolationMode = InterpolationMode.HighQualityBicubic; handle.DrawImage(fractalG.Image, 0, 0, width, height); // Save the image tmpImage.Save(fileName); this.Close(); } } catch (FormatException) { MessageBox.Show("Invalid Numerical Value", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (ArgumentException exc) { MessageBox.Show("Invalid Image name : " + exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } // Add others }