首页

使用AForge.Net打开摄像头抓拍图片

c#

2020-9-7

     使用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");
        }
    }
}
资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
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
没有账号? 忘记密码?

社交账号快速登录