C#完成挪用本機攝像頭實例。本站提示廣大學習愛好者:(C#完成挪用本機攝像頭實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#完成挪用本機攝像頭實例正文
本文實例源自一個項目,個中須要挪用本機的攝像頭停止攝影,分享給年夜家供年夜家參考之用。詳細步調以下:
硬件情況:聯想C360一體機,自帶攝像頭
編寫情況:vs2010
說話:C# WPF
完成步調:
下載AForge類庫,並添加援用:
using AForge; using AForge.Controls; using AForge.Video; using AForge.Video.DirectShow; using Size = System.Drawing.Size;
在xaml界面中添加VideoSourcePlayer控件,此次略微說明若何添加外來控件:
在對象箱中添加新的選項卡,右鍵添加選擇項,閱讀選擇控件dll肯定,援用控件便可添加到對象箱中。
列舉一切的攝像頭:
FilterInfoCollection videoDevices; videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); foreach (FilterInfo device in videoDevices) { //可以做出處置 }
銜接攝像頭:
聲明:
FileterInfo info; info = videoDevices[0];//拔取第一個,此處可作靈巧修改 VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[info.MonikerString); videoSource.DesiredFrameSize = new System.Drawing.Size(214, 281); videoSource.DesiredFrameRate = 1; videoSourcePlayer.VideoSource = videoSource; videoSourcePlayer.Start();
封閉攝像頭:
videoSourcePlayer.SignalToStop(); videoSourcePlayer.WaitForStop();
攝影:
if (videoSourcePlayer.IsRunning) { string path = "e:\" BitmapSource bitmapSource = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( videoSourcePlayer.GetCurrentVideoFrame().GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); PngBitmapEncoder pE = new PngBitmapEncoder(); pE.Frames.Add(BitmapFrame.Create(bitmapSource)); string picName = path + "paizhao" + ".jpg"; if (File.Exists(picName)) { File.Delete(picName); } using (Stream stream = File.Create(picName)) { pE.Save(stream); } }
項目中請求是攝像頭處於監控狀況,攝影後畫面固定存儲,不滿足可以清空再次停止攝影,直到滿足為止。
做法是在videoSourcePlayer的下面添加一個image控件,由於項目是WPF做的,一切照片顯示只能添加image控件,有兩點須要留意:
1)WPF援用winform控件須要應用WindowsFormsHost控件,所以監控視頻和照片顯示時是控件WindowsFormsHost和image控件的顯示和隱蔽,此處走了一段彎路所以記載上去。
2)image控件的source曾經綁定,然則照片須要清空刪除該照片資本,體系提醒的年夜請安思是資本曾經被占用沒法刪除。處理門路:
聲明:
BitmapImage bmi = new System.Windows.Media.Imaging.BitmapImage();
應用時:
bmi.BgeinInit(); bmi.UriSource = new Uri(picName); bmi.CacheOption = BitmapCacheOption.OnLoad; bmi.EndInit();
綁定:
this.image.Source = bmi;
願望本文所述關於年夜家的C#法式設計有所贊助。