【C#】#100 調用網路攝影機

來源:互聯網
上載者:User

標籤:

需求:由於項目需要獲得使用者的頭像,所以需要用C#調用網路攝影機擷取頭像。

下面寫一個調用網路攝影機的方法

案例:調用網路攝影機的一個DEMO【】

使用的類庫:AForge.dll   【Demo下載,Demo裡面有類庫】

1、檢測電腦上的網路攝影機裝置

FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

 

用Count判斷網路攝影機裝置的個數,如果沒有網路攝影機,則拋出異常【自行處理異常】,有網路攝影機,則添加到下拉框中

if (videoDevices.Count == 0)           throw new ApplicationException(); foreach (FilterInfo device in videoDevices) {           tscbxCameras.Items.Add(device.Name); }

 

2、串連網路攝影機

檢測到網路攝影機,就可以開始串連網路攝影機,擷取映像啦。

//選擇下拉框中的一個網路攝影機裝置 VideoCaptureDevice videoSource = new VideoCaptureDevice(videoDevices[tscbxCameras.SelectedIndex].MonikerString);            //設定擷取顯示映像框的大小 videoSource.DesiredFrameSize = new Size(320, 240); videoSource.DesiredFrameRate = 1;             //為網路攝影機控制項設定網路攝影機擷取的圖片videPlayer.VideoSource = videoSource; //開啟網路攝影機videPlayer.Start();

 

3、關閉網路攝影機【也可以用 Stop() 方法關閉】

videPlayer.SignalToStop();videPlayer.WaitForStop();

 

 

Demo運行:

項目中,多了一個:把網路攝影機上的圖片繪製下來

 img = new Bitmap(102, 126, PixelFormat.Format24bppRgb); //設定圖片的大小,位元 videPlayer.DrawToBitmap((Bitmap)img, new Rectangle(0, 0, videPlayer.Width, videPlayer.Height));  //繪製映像到Img對象 videPicture.Image = img;   //顯示到PictureBox控制項上

 

在這裡遇到過一個問題,那就是 GDI+一般性錯誤【原因:資源佔用】

遇到問題的情況:

     1、修改人員資訊的時候,先從本地讀取圖片檔案,賦值到PictureBox上。

    2、儲存的時候會再把PictureBox的圖片儲存到本地硬碟中。

解決辦法: 【解除圖片資源佔用即可】

1、把本地圖片讀取出來,深複製一份

2、把深複製的那一份賦值到PictureBox

3、關閉本地圖片資源的關閉

#region 深複製圖片,並且關閉資源,防止出現佔用 //圖片的深複製,並且關閉佔用圖片檔案的資源 img = new Bitmap(path); Image bmp = new Bitmap(img.Width, img.Height); Graphics draw = Graphics.FromImage(bmp); draw.DrawImage(img, 0, 0); draw.Dispose(); img.Dispose(); videPicture.Image = bmp;#endregion

項目中使用:

【C#】#100 調用網路攝影機

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.