C#编程之利用AForge.NET组件操作摄像头
白羽 2018-07-10 来源 :网络 阅读 2676 评论 0

摘要:本文将带你了解C#编程之利用AForge.NET组件操作摄像头,希望本文对大家学C#/.Net有所帮助。



c# 利用AForge.NET组件操作摄像头

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Drawing.Imaging;

using System.Text;

using System.Windows.Forms;

using System.Threading;

 

using AForge;

using AForge.Video;

using AForge.Video.DirectShow;

using AForge.Imaging;

using AForge.Imaging.Filters;

using System.IO;

 

namespace Camera

{

    public partial class Form1 : Form

    {

        private FilterInfoCollection videoDevices;

 

        public VideoCaptureDevice videoSource;  

        private int flag = 1;

        private string dirc = System.AppDomain.CurrentDomain.BaseDirectory + "JPG"; //截图保存的目录  

 

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

            if (!Directory.Exists(dirc))

                Directory.CreateDirectory(dirc);  

 

            try

            {

                // 枚举所有视频输入设备

                videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

 

                if (videoDevices.Count == 0)

                    throw new ApplicationException();

 

                foreach (FilterInfo device in videoDevices)

                {

                    tscbxCameras.Items.Add(device.Name);

                }

 

                tscbxCameras.SelectedIndex = 0;

            }

            catch (ApplicationException)

            {

                tscbxCameras.Items.Add("No local capture devices");

                videoDevices = null;

            }

        }

 

        private void toolStripButton1_Click(object sender, EventArgs e)

        {

            CameraConn();

        }

 

        private void CameraConn()

        {   //你这里重新定义了一个对象,所以出错

            videoSource = new VideoCaptureDevice(videoDevices[tscbxCameras.SelectedIndex].MonikerString);

            videoSource.DesiredFrameSize = new Size(320, 240);

            videoSource.DesiredFrameRate = 1;

 

            videPlayer.VideoSource = videoSource;

            videPlayer.Start();

        }

 

        private void toolStripButton2_Click(object sender, EventArgs e)

        {

            videPlayer.SignalToStop();

            videPlayer.WaitForStop();

        }

 

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)

        {

            toolStripButton2_Click(null, null);

        }

 

        private void toolStripButton3_Click(object sender, EventArgs e)

        {

            //不懂截图,但还是给你简单完善了下

            flag = 0;

            if (videoSource == null)

            {

                MessageBox.Show("请先连接摄像头");                

            }

            else if (!videoSource.IsRunning)

            {

                MessageBox.Show("摄像头已经关闭,请重新打开");

            }

            else

            {

                videoSource.NewFrame += new NewFrameEventHandler(video_NewFrame);

            }

        }

 

        private void video_NewFrame(object sender, NewFrameEventArgs eventArgs)

        {

            Bitmap bitmap = (Bitmap)eventArgs.Frame.Clone();

            if (flag == 0)

            {

                string img = dirc + "/" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";

                bitmap.Save(img);

                flag = 1;

            }

        } 

    }

}

 

 


以上就介绍了C#.NET的相关知识,希望对C#.NET有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言C#.NET频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 1
看完这篇文章有何感觉?已经有1人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程