2021年12月7日 星期二

C# 使用AForge調用筆記本攝像頭拍照

vs2012 winform 連接攝像頭設備,這裡需要引入 代碼: 在工具箱中還需要添加AForge.Control,然後找到VideoSourcePlayer這個控制項添加到界面上 直接找到dll拖拽到工具箱就可以了(工具箱先建一個選項) 將在camera裡面出現很多控制項,找到videoSource ...


vs2012  winform

連接攝像頭設備,這裡需要引入

代碼:

 

 

using AForge;
using AForge.Controls;
using AForge.Imaging;
using AForge.Video;
using AForge.Video.DirectShow;

在工具箱中還需要添加AForge.Control,然後找到VideoSourcePlayer這個控制項添加到界面上

直接找到dll拖拽到工具箱就可以了(工具箱先建一個選項)

將在camera裡面出現很多控制項,找到videoSourcePlayer,拖拽至form窗體

 

 

然後完成了基本設置

定義全局變數

FilterInfoCollection videoDevices;
VideoCaptureDevice videoSource;
public int selectedDeviceIndex = 0;

然後連接攝像頭

 1 private void btn_getdevice_Click(object sender, EventArgs e)
 2         {
 3             videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
 4             selectedDeviceIndex = 0;
 5             videoSource = new VideoCaptureDevice(videoDevices[selectedDeviceIndex].MonikerString);//連接攝像頭。
 6             videoSource.VideoResolution = videoSource.VideoCapabilities[selectedDeviceIndex];
 7             videoSourcePlayer1.VideoSource = videoSource;
 8             // set NewFrame event handler
 9             videoSourcePlayer1.Start();  
10         }      

 

拍照:

1  private void button1_Click(object sender, EventArgs e)
2         {
3             if (videoSource == null)
4                 return;
5             Bitmap bitmap = videoSourcePlayer1.GetCurrentVideoFrame();
6             string fileName = "54250.jpg";//DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-ff") + ".jpg";
7             bitmap.Save(@"E:\temp\" + fileName, ImageFormat.Jpeg);
8             bitmap.Dispose();
9         }

 

 

 

這樣就完成了拍照功能

 

 

效果圖

 資料來源: https://www.zendei.com/article/10552.html 


沒有留言: