天天看點

Aforge.VIdeo 攝像使用 附帶demo Aforge DLL

首先看看調用攝像頭

 FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);//攝像頭執行個體對象

int  sumVideo = videoDevices.Count;//找到計算機所有的攝像頭 數量 ,沒有攝像頭的話 就等于 0

videoSource.ProvideSnapshots = true; //是否設定快門鍵 作用于攝像頭,下面 videoSource_SnapshotFrame; 快門事件是否生效.

videoSource.SnapshotFrame += videoSource_SnapshotFrame;快門事件

videoSource.NewFrame += videoSource_NewFrame; //在此事件中把把攝像頭共享給其他控件使用 如(pic圖檔控件,攝像頭畫面可有在顯示在pic控件中)

如果使用 Controls videoSourcePlayer控件的話.則使用以下語句 擷取攝像源

videoSourcePlayer = new AForge.Controls.VideoSourcePlayer(); 

videoSourcePlayer.VideoSource = videoSource;

videoSourcePlayer.Start();

 videoSource_NewFrame 事件實作

 void videoSource_NewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)

        {

                        Image img = (Image)eventArgs.Frame.Clone();

                        PicVideo.BackgroundImage = img;

                        GC.Collect();

            }

這樣就可以把攝像頭畫面 賦予 PicVideo 控件中顯示(PictureBox圖檔控件)

videoSource_SnapshotFrame 事件實作 - 快門事件(如攝像頭有快門鍵話,按下就可以觸發此事件)-如出現按下快門鍵沒有觸發此事件的情況,則可能攝像頭按鍵不支援.(情況較少出現)

    void videoSource_SnapshotFrame(object sender, NewFrameEventArgs eventArgs)

        {

            try

            {

//按下快門事件,就截圖照片. 指派于 pictureBox1 控件中顯示

                pictureBox1.BackgroundImage = Image.FromHbitmap(videoSourcePlayer.GetCurrentVideoFrame().GetHbitmap());

            }

            catch(Exception ex)

            {

            }

        }

按以上步驟 正常情況是可成功操作攝像頭的.

demo 下載下傳位址:百度雲 http://pan.baidu.com/s/1o6A1D9o (附帶DLL)

Aforge.VIdeo 攝像使用 附帶demo Aforge DLL