用c#拍摄快照(A照片)

用c#拍摄快照(A照片),c#,image,webcam,aforge,C#,Image,Webcam,Aforge,我和一个大人物一起做了这个密码。输出应该是使用Wabcam拍摄的照片(保存在“C:\users\me\Desktop\Picture.jpg”中)。 代码就是不这样做,我也不知道为什么。谢谢 static void video_NewFrame(object sender, NewFrameEventArgs eventArgs) { Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone(); bitmap.S

我和一个大人物一起做了这个密码。输出应该是使用Wabcam拍摄的照片(保存在“C:\users\me\Desktop\Picture.jpg”中)。 代码就是不这样做,我也不知道为什么。谢谢

    static void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
        bitmap.Save(@"c:\users\me\desktop\picture.jpg");
       }
    static void Main(string[] args)
    {
        FilterInfoCollection videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice );            VideoCaptureDevice videoSource = new VideoCaptureDevice( videoDevices[0].MonikerString );
        videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame );
        videoSource.Start();
        videoSource.SignalToStop();

    }
试试这个:

    public static  bool x = false;
    static void Main(string[] args)
    {
        FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
        videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
        videoSource.Start();
        while (true)
        {
            if (x == true)
            {
                videoSource.SignalToStop();
                break;
            }
        }
    }
    static void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
        bitmap.Save(@"C:\Users\Skydr\Desktop\C++_Project\a.jpg");
        x = true;
    }
试试这个:

    public static  bool x = false;
    static void Main(string[] args)
    {
        FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
        videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);
        videoSource.Start();
        while (true)
        {
            if (x == true)
            {
                videoSource.SignalToStop();
                break;
            }
        }
    }
    static void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();
        bitmap.Save(@"C:\Users\Skydr\Desktop\C++_Project\a.jpg");
        x = true;
    }

谢谢你,阿道拉,我解决了这个问题:

     static void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        Bitmap bitmap = (Bitmap)eventArgs.Frame;
        bitmap.Save(@"c:\users\me\desktop\picture.jpg");



    static void Main(string[] args)
    {
        bool finish = false ;
        FilterInfoCollection videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice );
         VideoCaptureDevice videoSource = new VideoCaptureDevice( videoDevices[0].MonikerString );
        videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame );
        videoSource.Start();
        do{
        if (File.Exists(@"c:\users\me\desktop\picture.jpg"))
        {
            finish = true;
        videoSource.SignalToStop();
       }
        } while (finish != true);
    }

谢谢你,阿道拉,我解决了这个问题:

     static void video_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        Bitmap bitmap = (Bitmap)eventArgs.Frame;
        bitmap.Save(@"c:\users\me\desktop\picture.jpg");



    static void Main(string[] args)
    {
        bool finish = false ;
        FilterInfoCollection videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice );
         VideoCaptureDevice videoSource = new VideoCaptureDevice( videoDevices[0].MonikerString );
        videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame );
        videoSource.Start();
        do{
        if (File.Exists(@"c:\users\me\desktop\picture.jpg"))
        {
            finish = true;
        videoSource.SignalToStop();
       }
        } while (finish != true);
    }

您的问题是在未完成帧接收时调用“SignalToStop”。该代码允许相机接收图片,然后关闭视频源而不被中断。您的问题是在未完成帧接收时调用“SignalToStop”。该代码允许相机接收图片,然后关闭视频源而不被中断。