2017-05-12 28 views
0

AForge로이 코드를 작성했습니다. 출력은 Wabcam으로 찍은 사진이어야합니다 ("C : \ users \ me \ Desktop \ Picture.jpg"에 저장 됨). 코드는 그렇게하지 않으며 왜 아이디어가 없습니다. 감사합니다C#으로 스냅 샷 찍기 (AForge)

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(); 

    } 

답변

1

이 시도 :이 프레임을 수신하지 때

 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); 
    } 
+0

귀하의 문제는 '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; } 
Adola

1

내가 이런 문제를 해결 당신에게 Adola 감사드립니다. 이 코드를 통해 카메라는 사진을 수신 한 다음 중단없이 비디오 소스를 종료 할 수 있습니다.