• C# 使用AForge调用笔记本摄像头拍照


    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         }
    复制代码

    这样就完成了拍照功能

    效果图

  • 相关阅读:
    C语言 · 新生舞会
    C语言 · 集合运算
    C语言 · 字符串的展开
    C语言 · 学做菜
    C语言 · 最长公共子序列 · 最长字符序列
    C语言 · 复数求和
    C语言 · 扶老奶奶过街
    C语言 · 删除重复元素
    1-3
    1-4
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14284892.html
Copyright © 2020-2023  润新知