通过计时器

时间:2017-01-07 08:22:16

标签: c# .net visual-studio timer picturebox

我制作了一个简单的Windows窗体应用程序,它有一个图片框,可以在表单加载时开始捕获。喜欢这个

private void Form1_Load(object sender, EventArgs e)
    {

        webcam = new FilterInfoCollection(FilterCategory.VideoInputDevice);
        foreach(FilterInfo VideoCaptureDevice in webcam)
        {
            cameraList.Items.Add(VideoCaptureDevice.Name);
        }
        cameraList.SelectedIndex = 0;
        cam = new VideoCaptureDevice(webcam[cameraList.SelectedIndex].MonikerString);
        cam.NewFrame += new NewFrameEventHandler(cam_NewFrame);
        cam.Start();


    }



    private void cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        Bitmap bit = (Bitmap)eventArgs.Frame.Clone();
        pictureBox1.Image = bit;


    }

我希望它每5秒后自动保存图像。 我在计时器点击代码中放了一个计时器,我试图像这样保存。

private void timer1_Tick(object sender, EventArgs e)
    {                       
        pictureBox1.Image.Save(@"C:\Users\Noshair\Desktop\Images\" + "my.jpg");                       
    }

但是当应用程序启动时,它会在此Image.Save行上出错 如果在按钮单击中写入相同的代码,则它可以正常工作并保存图像。

  

{"对象引用未设置为对象的实例。"}

1 个答案:

答案 0 :(得分:-2)

有些东西适合我。

try
        {
            pb.Image.Save(location + time.ToString() + ".jpg");
        }
        catch (NullReferenceException ex)
        {
            ex.ToString();
        }

我刚刚使用了try catch异常并且在catch中我什么也没做,所以错误可能仍然存在,但它没有打扰或停止我的应用程序并成功保存图像。