private void SelectSourceButton_Click(object sender, EventArgs e) { string fileName; using (var op = new OpenFileDialog { Filter = Consts.BitmapImportFilter }) { if (op.ShowDialog() != DialogResult.OK) { return; } fileName = op.FileName; } try { if (m_originalBitmap != null) { m_originalBitmap.Dispose(); } m_originalBitmap = BitmapProcessor.LoadBitmapFromFile(fileName); if (m_originalBitmap.Width > 2048 || m_originalBitmap.Height > 2048) { if (m_monochromeBitmap != null) { m_monochromeBitmap.Dispose(); m_monochromeBitmap = null; } SourceTextBox.Clear(); ResizeContainerPanel.Enabled = false; ConversionContainerPanel.Enabled = false; m_doNotUpdateMonochrome = true; NewWidthUpDown.Value = m_width = (int)NewWidthUpDown.Minimum; NewHeightUpDown.Value = m_height = (int)NewHeightUpDown.Minimum; m_doNotUpdateMonochrome = false; ImagePreviewSurface.Invalidate(); OkButton.Enabled = false; InfoBox.Show("Selected images is too big. Choose an image that has dimension lower than 2048x2048."); } else { SourceTextBox.Text = fileName; ConversionContainerPanel.Enabled = true; if (m_importMode) { NewWidthUpDown.Value = m_width = m_desireWidth; NewHeightUpDown.Value = m_height = m_desireHeight; } else { ResizeContainerPanel.Enabled = true; m_doNotUpdateMonochrome = true; NewWidthUpDown.Value = m_width = m_originalBitmap.Width; NewHeightUpDown.Value = m_height = m_originalBitmap.Height; m_doNotUpdateMonochrome = false; } CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); OkButton.Enabled = true; } } catch (Exception ex) { InfoBox.Show("An error occured during opening image file!\n" + ex.Message); } }
private void InitializeControls(bool importMode, int?desireWidth, int?desireHeight) { if (importMode) { if (!desireWidth.HasValue) { throw new ArgumentNullException("desireWidth"); } if (!desireHeight.HasValue) { throw new ArgumentNullException("desireHeight"); } NewWidthUpDown.Value = m_width = m_desireWidth = desireWidth.Value; NewHeightUpDown.Value = m_height = m_desireHeight = desireHeight.Value; ResizeContainerPanel.Enabled = false; OkButton.Text = @"Import"; OkButton.DialogResult = DialogResult.OK; } else { OkButton.Click += OkButton_Click; } ConversionTypeComboBox.Items.AddRange(new object[] { new NamedItemContainer <MonochromeConversionMode>("Floyd Steinberg Dithering", MonochromeConversionMode.FloydSteinbergDithering), new NamedItemContainer <MonochromeConversionMode>("Threshold based", MonochromeConversionMode.ThresholdBased) }); ConversionTypeComboBox.SelectedIndex = 0; SelectSourceButton.Click += SelectSourceButton_Click; NewWidthUpDown.ValueChanged += (s, e) => { m_width = (int)NewWidthUpDown.Value; Safe.Execute(() => { CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); }); }; NewHeightUpDown.ValueChanged += (s, e) => { m_height = (int)NewHeightUpDown.Value; Safe.Execute(() => { CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); }); }; JoyetechSizeButton.Click += JoyetechSizeButton_Click; ConversionTypeComboBox.SelectedIndexChanged += (s, e) => { var item = (NamedItemContainer <MonochromeConversionMode>)ConversionTypeComboBox.SelectedItem; ThresholdUpDown.Enabled = item.Data == MonochromeConversionMode.ThresholdBased; Safe.Execute(() => { CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); }); }; ThresholdUpDown.ValueChanged += (s, e) => { Safe.Execute(() => { CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); }); }; ImagePreviewSurface.Paint += ImagePreviewSurface_Paint; Disposed += (s, e) => { if (m_originalBitmap != null) { m_originalBitmap.Dispose(); } if (m_monochromeBitmap != null) { m_monochromeBitmap.Dispose(); } }; }
private void InitializeControls() { ConversionTypeComboBox.Items.AddRange(new object[] { new NamedItemContainer <MonochromeConversionMode>("Floyd Steinberg Dithering", MonochromeConversionMode.FloydSteinbergDithering), new NamedItemContainer <MonochromeConversionMode>("Threshold based", MonochromeConversionMode.ThresholdBased) }); ConversionTypeComboBox.SelectedIndex = 0; SelectSourceButton.Click += SelectSourceButton_Click; NewWidthUpDown.ValueChanged += (s, e) => { m_width = (int)NewWidthUpDown.Value; Safe.Execute(() => { CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); }); }; NewHeightUpDown.ValueChanged += (s, e) => { m_height = (int)NewHeightUpDown.Value; Safe.Execute(() => { CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); }); }; JoyetechSizeButton.Click += JoyetechSizeButton_Click; ConversionTypeComboBox.SelectedIndexChanged += (s, e) => { var item = (NamedItemContainer <MonochromeConversionMode>)ConversionTypeComboBox.SelectedItem; ThresholdUpDown.Enabled = item.Data == MonochromeConversionMode.ThresholdBased; Safe.Execute(() => { CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); }); }; ThresholdUpDown.ValueChanged += (s, e) => { Safe.Execute(() => { CreateMonochromeBitmap(); ImagePreviewSurface.Invalidate(); }); }; OkButton.Click += OkButton_Click; ImagePreviewSurface.Paint += ImagePreviewSurface_Paint; Disposed += (s, e) => { if (m_originalBitmap != null) { m_originalBitmap.Dispose(); } if (m_monochromeBitmap != null) { m_monochromeBitmap.Dispose(); } }; }