2013-04-03 253 views
0

我写了一个代码acessing有两个按钮的摄像头和一个图片框Aforge为网络摄像头

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using AForge.Imaging; 
using AForge.Imaging.Filters; 
using AForge.Video; 
using AForge.Video.DirectShow; 

namespace cam 
{ 
public partial class Form1 : Form 
{ 

    public Form1() 
    { 
     InitializeComponent(); 
    } 
    private FilterInfoCollection webcam; 
    private VideoCaptureDevice cam; 
    Bitmap bitmap; 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     webcam = new FilterInfoCollection(FilterCategory.VideoInputDevice); 
     foreach (FilterInfo VideoCaptureDevice in webcam) 
     { 
      comboBox1.Items.Add(VideoCaptureDevice.Name); 

     } 
     comboBox1.SelectedIndex = 0; 
     } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     cam = new VideoCaptureDevice(webcam[comboBox1.SelectedIndex].MonikerString); 
     cam.NewFrame += new NewFrameEventHandler(cam_NewFrame); 
     cam.Start(); 

    } 
    void cam_NewFrame(object sender, NewFrameEventArgs eventArgs) 
    { 
     Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone(); 

     pictureBox1.Image = bitmap; 
    } 



    private void button3_Click(object sender, EventArgs e) 
    { 
     if (cam.IsRunning) 
     { 
      cam.Stop(); 
     } 
    } 

    private void pictureBox1_Click(object sender, EventArgs e) 
    { 
     pictureBox1.Image = bitmap; 
    } 



    } 

} 

代码构建成功。但在调试图片框不工作。启动和停止工作正常。谁能帮忙?

+0

试试'pictureBox1.Invalidate()'。 –

+0

谢谢bt我解决了它。 – Aswathy

+0

可以请你告诉我如何保存图像 – Aswathy

回答

0

,你必须先删除

Bitmap bitmap; 

,因为它的空,那是你在图片框中显示 不是来自相机