CamTimer.MainForm.TakePicture C# (CSharp) Method

TakePicture() private method

private TakePicture ( object sender, EventArgs e ) : void
sender object
e EventArgs
return void
        private void TakePicture(object sender, EventArgs e)
        {
            Webcam cam = confWebcam.SelectedItem as Webcam;
            WebcamWithPreview camp = cam as WebcamWithPreview;

            if ((m_takePictureWithPreviewAsync != null) && (sender == takePicturePicture) && (camp != null)) {
                camp.TakePictureEnd();
            }

            if ((m_takePictureAsync == null) && (m_takePictureWithPreviewAsync == null) && (cam != null)) {
                takePictureSaveButton.Enabled = false;
                cam.Config(confResolution.Resolution);

                if (camp != null) {
                    takePicturePicture.Text = string.Empty;
                    BindHelp(takePicturePicture, Language.FormatString(Language.LanguageString.MainForm_Help_VideoStreamFreezeTitle), Language.FormatString(Language.LanguageString.MainForm_Help_VideoStreamFreezeText));

                    camp.DisplacementMap = null;
                    if ((takePictureDisplacement.CurrentPicture != null) && (takePictureDisplacement.CurrentPicture.Picture.Length > 0)) {
                        camp.DisplacementMap = new Bitmap(takePictureDisplacement.CurrentPicture.Picture);
                    }
                    takePicturePicture.DisplayBitmap = new Bitmap(confResolution.Resolution.Size.Width, confResolution.Resolution.Size.Height, confResolution.Resolution.PixelFormat);

                    m_takePictureWithPreviewAsync = new TakePictureWithPreview(camp.TakePicture);
                    m_takePictureWithPreviewAsync.BeginInvoke(takePicturePicture, (AsyncCallback)delegate(IAsyncResult result) {
                        try {
                            m_takePictureWithPreviewAsync.EndInvoke(result);
                            confAcceptButton.Invoke((MethodInvoker)delegate() {
                                takePictureSaveButton.Enabled = true;
                            });
                        } catch (Exception ex) {
                            try {
                                confAcceptButton.Invoke((MethodInvoker)delegate() {
                                    takePicturePicture.Text = Language.FormatString(Language.LanguageString.MainForm_FailedToTakePicture);
                                });
                            } catch (Exception) { }
                        } finally {
                            m_takePictureWithPreviewAsync = null;
                        }
                    }, null);

                } else {
                    BindHelp(takePicturePicture, Language.FormatString(Language.LanguageString.MainForm_Help_PictureTitle), Language.FormatString(Language.LanguageString.MainForm_Help_PictureText));

                    takePicturePicture.Text = Language.FormatString(Language.LanguageString.MainForm_TakePicture_TakingPicture);
                    m_takePictureAsync = new TakePicture(cam.TakePicture);
                    m_takePictureAsync.BeginInvoke((AsyncCallback)delegate(IAsyncResult result) {
                        try {
                            takePicturePicture.DisplayBitmap = m_takePictureAsync.EndInvoke(result);
                            confAcceptButton.Invoke((MethodInvoker)delegate() {
                                takePictureSaveButton.Enabled = true;
                                takePicturePicture.Text = string.Empty;
                            });
                        } catch (Exception ex) {
                            try {
                                confAcceptButton.Invoke((MethodInvoker)delegate() {
                                    takePicturePicture.Text = Language.FormatString(Language.LanguageString.MainForm_FailedToTakePicture);
                                });
                            } catch (Exception) { }
                        } finally {
                            m_takePictureAsync = null;
                        }
                    }, null);
                }
            }
        }

Usage Example

Example #1
0
        internal static void ShowInstance(int initScreenIndex)
        {
            if (s_instance == null)
            {
                s_instance = new MainForm();
            }
            if (initScreenIndex == 0)
            {
                s_instance.confPanel.Left           = 0;
                s_instance.confPanel.Visible        = true;
                s_instance.takePicturePanel.Visible = false;
                s_instance.Text = Application.ProductName + " - " + Language.FormatString(Language.LanguageString.MainForm_Configuration_Title);
            }
            else
            {
                s_instance.takePictureSaveButton.Enabled = false;
                s_instance.takePicturePanel.Left         = 0;
                s_instance.takePicturePanel.Visible      = true;
                s_instance.confPanel.Visible             = false;
                s_instance.Text = Application.ProductName + " - " + Language.FormatString(Language.LanguageString.MainForm_TakePicture_Title);
                s_instance.TakePicture(null, null);
            }

            s_instance.Show();
            s_instance.BringToFront();
        }