使用AForge.Net抓拍图片

using AForge.Video.DirectShow;
using System;
using System.Drawing;
using System.Windows.Forms;
namespace AForgeTestApp
{
public partial class MainForm : Form
{
private FilterInfoCollection videoDevices;
private VideoCaptureDevice videoSource;
private int Indexof = 0;
public MainForm()
{
InitializeComponent();
}
//添加所有的摄像头到combobox列表里
private void Camlist()
{
videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
if (videoDevices.Count == 0)
{
MessageBox.Show("未找到摄像头设备");
}
foreach (FilterInfo device in videoDevices)
{
Cameralist.Items.Add(device.Name);
}
}
private void Form1_Load(object sender, EventArgs e)
{
Camlist();
}
private void OpenVoidVtn_Click(object sender, EventArgs e)
{
Indexof = Cameralist.SelectedIndex;
if (Indexof < 0)
{
MessageBox.Show("请选择一个摄像头");
return;
}
//this.pictureBox1.Visible = false;
this.videoSourcePlayer1.Visible = true;
//videoDevices[Indexof]确定出用哪个摄像头了。
videoSource = new VideoCaptureDevice(videoDevices[Indexof].MonikerString);
//设置下像素,这句话不写也可以正常运行:
videoSource.VideoResolution = videoSource.VideoCapabilities[Indexof];
//在videoSourcePlayer1里显示
videoSourcePlayer1.VideoSource = videoSource;
videoSourcePlayer1.Start();
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//这里停止摄像头继续工作 当然videoSourcePlayer里也定义了 Stop();用哪个都行
videoSourcePlayer1.Stop();
// videoSourcePlayer1.SignalToStop(); videoSourcePlayer1.WaitForStop();
}
private void SnapPictureBtn_Click(object sender, EventArgs e)
{
if (videoSource == null)
{
MessageBox.Show("请先打开摄像头");
return;
}
//videoSourcePlayer继承Control父类,定义 GetCurrentVideoFrame能输出bitmap
Bitmap bitmap = videoSourcePlayer1.GetCurrentVideoFrame();
bitmap.Save($"{DateTime.Now:yyyyMMddHHmmss}.jpeg");
}
}
}
资源文件列表
AForgeTestApp/.vs/AForgeTestApp/v16/.suo , 253440
AForgeTestApp/.vs/AForgeTestApp/v16/Server/sqlite3/db.lock , 0
AForgeTestApp/.vs/AForgeTestApp/v16/Server/sqlite3/storage.ide , 602112
AForgeTestApp/AForgeTestApp.csproj , 4330
AForgeTestApp/AForgeTestApp.sln , 1131
AForgeTestApp/MainForm.Designer.cs , 4548
AForgeTestApp/MainForm.cs , 2660
AForgeTestApp/MainForm.resx , 5817
AForgeTestApp/Program.cs , 497
AForgeTestApp/Properties/AssemblyInfo.cs , 1318
AForgeTestApp/Properties/Resources.Designer.cs , 2839
AForgeTestApp/Properties/Resources.resx , 5612
AForgeTestApp/Properties/Settings.Designer.cs , 1100
AForgeTestApp/Properties/Settings.settings , 249
AForgeTestApp/bin/Debug/AForge.Controls.dll , 44544
AForgeTestApp/bin/Debug/AForge.Controls.xml , 66108
AForgeTestApp/bin/Debug/AForge.Imaging.dll , 262656
AForgeTestApp/bin/Debug/AForge.Imaging.xml , 944046
AForgeTestApp/bin/Debug/AForge.Math.dll , 68096
AForgeTestApp/bin/Debug/AForge.Math.xml , 270650
AForgeTestApp/bin/Debug/AForge.Video.DirectShow.dll , 61440
AForgeTestApp/bin/Debug/AForge.Video.DirectShow.xml , 195287
AForgeTestApp/bin/Debug/AForge.Video.dll , 20992
AForgeTestApp/bin/Debug/AForge.Video.xml , 53275
AForgeTestApp/bin/Debug/AForge.dll , 17920
AForgeTestApp/bin/Debug/AForge.xml , 78375
AForgeTestApp/bin/Debug/AForgeTestApp.exe , 10752
AForgeTestApp/bin/Debug/AForgeTestApp.pdb , 32256
AForgeTestApp/obj/Debug/AForgeTestApp.MainForm.resources , 180
AForgeTestApp/obj/Debug/AForgeTestApp.Properties.Resources.resources , 180
AForgeTestApp/obj/Debug/AForgeTestApp.csproj.CopyComplete , 0
AForgeTestApp/obj/Debug/AForgeTestApp.csproj.CoreCompileInputs.cache , 42
AForgeTestApp/obj/Debug/AForgeTestApp.csproj.FileListAbsolute.txt , 1309
AForgeTestApp/obj/Debug/AForgeTestApp.csproj.GenerateResource.cache , 1073
AForgeTestApp/obj/Debug/AForgeTestApp.csprojAssemblyReference.cache , 25619
AForgeTestApp/obj/Debug/AForgeTestApp.exe , 10752
AForgeTestApp/obj/Debug/AForgeTestApp.pdb , 32256
AForgeTestApp/obj/Debug/DesignTimeResolveAssemblyReferences.cache , 4901
AForgeTestApp/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache , 7258
