亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#使用Aforge調用攝像頭拍照的方法

2019-10-29 19:58:39
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C#使用Aforge調用攝像頭拍照的具體代碼,供大家參考,具體內容如下

一、新建一個Winform項目

二、使用Nuget添加引用

C#,Aforge,攝像頭,拍照

安裝下圖中紅色框住的兩個程序包

C#,Aforge,攝像頭,拍照

安裝完后發現安裝了如下圖的程序包,這是因為上述兩個程序包存在對其它程序包的依賴。

C#,Aforge,攝像頭,拍照

三、編寫程序

1.窗體設計,攝像頭是下拉列表(cmbCamera,控件命名,下同),雖然示例只用到一個攝像頭,但是該Demo可用于多個攝像頭間切換場景,分辨率是下拉列表(cmbResolution),列出攝像頭所支持的分辨率,一個VideoSourcePlayer控件(vispShoot),一個PictureBox控件(picbPreview)。

C#,Aforge,攝像頭,拍照

2.編寫代碼

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using AForge.Video.DirectShow;namespace AforgeDemo{  public partial class Form1 : Form  {    private FilterInfoCollection videoDevices;    private VideoCaptureDevice videoDevice;    private VideoCapabilities[] videoCapabilities;    private VideoCapabilities[] snapshotCapabilities;    public Form1()    {      InitializeComponent();    }    private void Form1_Load(object sender, EventArgs e)    {      videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);      if (videoDevices.Count != 0)      {        foreach (FilterInfo device in videoDevices)        {          cmbCamera.Items.Add(device.Name);        }      }      else      {        cmbCamera.Items.Add("沒有找到攝像頭");      }      cmbCamera.SelectedIndex = 0;    }    private void cmbCamera_SelectedIndexChanged(object sender, EventArgs e)    {      if (videoDevices.Count != 0)      {        videoDevice = new VideoCaptureDevice(videoDevices[cmbCamera.SelectedIndex].MonikerString);        GetDeviceResolution(videoDevice);      }    }    private void GetDeviceResolution(VideoCaptureDevice videoCaptureDevice)    {      cmbResolution.Items.Clear();      videoCapabilities = videoCaptureDevice.VideoCapabilities;      foreach (VideoCapabilities capabilty in videoCapabilities)      {        cmbResolution.Items.Add($"{capabilty.FrameSize.Width} x {capabilty.FrameSize.Height}");      }      cmbResolution.SelectedIndex = 0;    }    private void btnConnect_Click(object sender, EventArgs e)    {      if (videoDevice != null)      {        if ((videoCapabilities != null) && (videoCapabilities.Length != 0))        {          videoDevice.VideoResolution = videoCapabilities[cmbResolution.SelectedIndex];          vispShoot.VideoSource = videoDevice;          vispShoot.Start();          EnableControlStatus(false);        }      }    }    private void EnableControlStatus(bool status)    {      cmbCamera.Enabled = status;      cmbResolution.Enabled = status;      btnConnect.Enabled = status;      btnShoot.Enabled = !status;      btnDisconnect.Enabled = !status;    }    private void btnDisconnect_Click(object sender, EventArgs e)    {      DisConnect();      EnableControlStatus(true);    }    private void DisConnect()    {      if (vispShoot.VideoSource != null)      {        vispShoot.SignalToStop();        vispShoot.WaitForStop();        vispShoot.VideoSource = null;      }    }    private void btnShoot_Click(object sender, EventArgs e)    {      Bitmap img = vispShoot.GetCurrentVideoFrame();      picbPreview.Image = img;    }    private void Form1_FormClosing(object sender, FormClosingEventArgs e)    {      DisConnect();    }  }}

3.測試

C#,Aforge,攝像頭,拍照

附上窗體設計代碼:

namespace AforgeDemo{  partial class Form1  {    /// <summary>    /// 必需的設計器變量。    /// </summary>    private System.ComponentModel.IContainer components = null;    /// <summary>    /// 清理所有正在使用的資源。    /// </summary>    /// <param name="disposing">如果應釋放托管資源,為 true;否則為 false。</param>    protected override void Dispose(bool disposing)    {      if (disposing && (components != null))      {        components.Dispose();      }      base.Dispose(disposing);    }    #region Windows 窗體設計器生成的代碼    /// <summary>    /// 設計器支持所需的方法 - 不要修改    /// 使用代碼編輯器修改此方法的內容。    /// </summary>    private void InitializeComponent()    {      this.label1 = new System.Windows.Forms.Label();      this.cmbCamera = new System.Windows.Forms.ComboBox();      this.label2 = new System.Windows.Forms.Label();      this.cmbResolution = new System.Windows.Forms.ComboBox();      this.vispShoot = new AForge.Controls.VideoSourcePlayer();      this.picbPreview = new System.Windows.Forms.PictureBox();      this.btnConnect = new System.Windows.Forms.Button();      this.btnDisconnect = new System.Windows.Forms.Button();      this.btnShoot = new System.Windows.Forms.Button();      ((System.ComponentModel.ISupportInitialize)(this.picbPreview)).BeginInit();      this.SuspendLayout();      //       // label1      //       this.label1.AutoSize = true;      this.label1.Location = new System.Drawing.Point(39, 22);      this.label1.Name = "label1";      this.label1.Size = new System.Drawing.Size(53, 12);      this.label1.TabIndex = 0;      this.label1.Text = "攝像頭:";      //       // cmbCamera      //       this.cmbCamera.FormattingEnabled = true;      this.cmbCamera.Location = new System.Drawing.Point(98, 19);      this.cmbCamera.Name = "cmbCamera";      this.cmbCamera.Size = new System.Drawing.Size(113, 20);      this.cmbCamera.TabIndex = 1;      this.cmbCamera.SelectedIndexChanged += new System.EventHandler(this.cmbCamera_SelectedIndexChanged);      //       // label2      //       this.label2.AutoSize = true;      this.label2.Location = new System.Drawing.Point(217, 22);      this.label2.Name = "label2";      this.label2.Size = new System.Drawing.Size(53, 12);      this.label2.TabIndex = 0;      this.label2.Text = "分辨率:";      //       // cmbResolution      //       this.cmbResolution.FormattingEnabled = true;      this.cmbResolution.Location = new System.Drawing.Point(276, 19);      this.cmbResolution.Name = "cmbResolution";      this.cmbResolution.Size = new System.Drawing.Size(88, 20);      this.cmbResolution.TabIndex = 1;      //       // vispShoot      //       this.vispShoot.Location = new System.Drawing.Point(41, 54);      this.vispShoot.Name = "vispShoot";      this.vispShoot.Size = new System.Drawing.Size(591, 332);      this.vispShoot.TabIndex = 2;      this.vispShoot.Text = "videoSourcePlayer1";      this.vispShoot.VideoSource = null;      //       // picbPreview      //       this.picbPreview.Location = new System.Drawing.Point(41, 423);      this.picbPreview.Name = "picbPreview";      this.picbPreview.Size = new System.Drawing.Size(180, 175);      this.picbPreview.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;      this.picbPreview.TabIndex = 3;      this.picbPreview.TabStop = false;      //       // btnConnect      //       this.btnConnect.Location = new System.Drawing.Point(382, 19);      this.btnConnect.Name = "btnConnect";      this.btnConnect.Size = new System.Drawing.Size(80, 23);      this.btnConnect.TabIndex = 4;      this.btnConnect.Text = "連接";      this.btnConnect.UseVisualStyleBackColor = true;      this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);      //       // btnDisconnect      //       this.btnDisconnect.Enabled = false;      this.btnDisconnect.Location = new System.Drawing.Point(468, 19);      this.btnDisconnect.Name = "btnDisconnect";      this.btnDisconnect.Size = new System.Drawing.Size(80, 23);      this.btnDisconnect.TabIndex = 4;      this.btnDisconnect.Text = "斷開";      this.btnDisconnect.UseVisualStyleBackColor = true;      this.btnDisconnect.Click += new System.EventHandler(this.btnDisconnect_Click);      //       // btnShoot      //       this.btnShoot.Enabled = false;      this.btnShoot.Location = new System.Drawing.Point(552, 19);      this.btnShoot.Name = "btnShoot";      this.btnShoot.Size = new System.Drawing.Size(80, 23);      this.btnShoot.TabIndex = 4;      this.btnShoot.Text = "拍照";      this.btnShoot.UseVisualStyleBackColor = true;      this.btnShoot.Click += new System.EventHandler(this.btnShoot_Click);      //       // Form1      //       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;      this.ClientSize = new System.Drawing.Size(677, 610);      this.Controls.Add(this.btnShoot);      this.Controls.Add(this.btnDisconnect);      this.Controls.Add(this.btnConnect);      this.Controls.Add(this.picbPreview);      this.Controls.Add(this.vispShoot);      this.Controls.Add(this.cmbResolution);      this.Controls.Add(this.cmbCamera);      this.Controls.Add(this.label2);      this.Controls.Add(this.label1);      this.Name = "Form1";      this.Text = "Form1";      this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);      this.Load += new System.EventHandler(this.Form1_Load);      ((System.ComponentModel.ISupportInitialize)(this.picbPreview)).EndInit();      this.ResumeLayout(false);      this.PerformLayout();    }    #endregion    private System.Windows.Forms.Label label1;    private System.Windows.Forms.ComboBox cmbCamera;    private System.Windows.Forms.Label label2;    private System.Windows.Forms.ComboBox cmbResolution;    private AForge.Controls.VideoSourcePlayer vispShoot;    private System.Windows.Forms.PictureBox picbPreview;    private System.Windows.Forms.Button btnConnect;    private System.Windows.Forms.Button btnDisconnect;    private System.Windows.Forms.Button btnShoot;  }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线视频日韩精品| 欧美在线国产精品| 欧美日韩999| 亚洲精品视频久久| 欧美激情精品久久久久久蜜臀| 日韩av在线资源| 在线精品高清中文字幕| 九色成人免费视频| 日韩中文字幕在线精品| 在线午夜精品自拍| 欧美激情奇米色| 亚洲片在线资源| 久久久久久久一| 川上优av一区二区线观看| 国产精品久久久久久中文字| 欧美国产亚洲视频| 国产精品第8页| 国产亚洲精品高潮| 久久九九全国免费精品观看| 欧美激情一区二区三区在线视频观看| 久久亚洲精品中文字幕冲田杏梨| 欧美成人免费在线观看| 久久国产视频网站| 日韩视频第一页| 欧美激情视频网| 久久精品国产96久久久香蕉| 国产成人精品网站| 日韩欧美高清在线视频| 欧美激情精品久久久久久黑人| 亚洲精品一区二区三区婷婷月| 欧美激情国产精品| 成人黄色激情网| 欧美高清视频在线播放| xxx一区二区| 中日韩美女免费视频网址在线观看| 久久久久久久久久国产| 91久久久在线| 亚洲自拍偷拍第一页| 色悠悠久久久久| 免费97视频在线精品国自产拍| 欧美在线观看日本一区| 亚洲欧美国产精品va在线观看| 欧美电影免费观看网站| 成人伊人精品色xxxx视频| 亚洲最新中文字幕| 欧美精品18videos性欧| 欧美激情va永久在线播放| 国产精品嫩草影院一区二区| 日韩av成人在线| 欧美在线视频在线播放完整版免费观看| 国产精品igao视频| 精品亚洲一区二区三区| 亚洲的天堂在线中文字幕| 国产精品入口福利| 国产精品久久久久影院日本| 日韩一区在线视频| 欧美电影院免费观看| 亚洲国产精品小视频| 国产精品久久77777| 亚洲欧洲一区二区三区在线观看| 精品福利樱桃av导航| 国产精品大片wwwwww| 蜜月aⅴ免费一区二区三区| 亚洲一区二区三区乱码aⅴ| 2019中文字幕在线观看| 久久精品国产久精国产一老狼| 国产精品男人的天堂| 亚洲全黄一级网站| 日韩大片在线观看视频| 精品视频在线观看日韩| 日韩电影大全免费观看2023年上| 久久久久久久久中文字幕| 在线播放日韩精品| 亚洲综合中文字幕68页| 2018国产精品视频| 蜜月aⅴ免费一区二区三区| 精品久久久久久中文字幕一区奶水| 中文字幕在线日韩| 国产精品一区专区欧美日韩| 97人人爽人人喊人人模波多| 日本三级韩国三级久久| 欧美与欧洲交xxxx免费观看| 青青草精品毛片| 91青草视频久久| 国产视频观看一区| 色婷婷av一区二区三区在线观看| 成人精品福利视频| 欧美另类高清videos| 91亚洲精品在线观看| 精品亚洲男同gayvideo网站| 久久久久久尹人网香蕉| 欧美xxxx18性欧美| 91在线免费观看网站| 亚洲欧美日韩天堂一区二区| 欧美国产第二页| 成人h视频在线| 青草青草久热精品视频在线网站| 欧美日韩国产999| 久久91精品国产91久久跳| 中文字幕亚洲专区| 亚洲精品短视频| 久久精品国产清自在天天线| 欧美黑人视频一区| 欧美另类老肥妇| 国产亚洲视频在线| 精品欧美aⅴ在线网站| 中日韩美女免费视频网址在线观看| 欧美成人免费大片| 国产欧美精品在线| 欧美大片在线免费观看| 欧美激情精品久久久久久大尺度| 神马久久桃色视频| 2018中文字幕一区二区三区| 日韩精品日韩在线观看| 亚洲护士老师的毛茸茸最新章节| 欧美另类在线播放| 久久久久久久久久国产精品| 久久成人免费视频| 丝袜美腿亚洲一区二区| 亚洲精品一区二区三区不| 在线观看亚洲视频| 久99九色视频在线观看| 亚洲日韩中文字幕在线播放| 在线视频一区二区| 国产精品入口夜色视频大尺度| 欧美日韩加勒比精品一区| 国产成人福利夜色影视| 亚洲精品福利在线| 日韩久久精品成人| 日韩www在线| 97色伦亚洲国产| 欧美性猛交xxxx乱大交蜜桃| 欧美—级a级欧美特级ar全黄| 日韩在线欧美在线国产在线| 欧洲亚洲免费视频| 日韩精品999| 国产97在线视频| 国产精品中文字幕在线| 亚洲午夜精品久久久久久久久久久久| 亚洲国产精品字幕| 欧美日本啪啪无遮挡网站| 国产精品户外野外| 一区二区三区国产视频| 欧美洲成人男女午夜视频| 97久久精品视频| 久久久久久999| 在线播放国产一区二区三区| 亚洲在线免费看| 国产精品久久91| 97精品国产aⅴ7777| 日韩av在线影院| 深夜福利日韩在线看| 一本色道久久88综合日韩精品| 亚洲成人av资源网| 亚洲人成电影在线观看天堂色| 97在线视频免费| 日韩欧美在线视频日韩欧美在线视频| 亚洲国产美女久久久久| 成人精品福利视频| 久久久精品电影| 日韩av免费观影| 91网站免费看| 亚洲深夜福利在线| 亚洲美女喷白浆|