首页

SourceGrid4_20(Webcam-Capture-AForge.Net)

c#

2020-9-1

C#拍照软件



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using AForge.Video.DirectShow;
using System.Drawing.Imaging;
using System.Net;
using System.IO;

namespace Inscription
{
    public partial class Form1 : Form
    {
        FilterInfoCollection videoDevices;

        public Form1()
        {
            InitializeComponent();

            // show device list
            try
            {
                // enumerate video devices
                videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

                if (videoDevices.Count == 0)
                    throw new ApplicationException();

                // add all devices to combo
                foreach (FilterInfo device in videoDevices)
                {
                    devicesCombo.Items.Add(device.Name);
                }
            }
            catch (ApplicationException)
            {
                devicesCombo.Items.Add("No local capture devices");
                devicesCombo.Enabled = false;
                takePictureBtn.Enabled = false;
            }

            devicesCombo.SelectedIndex = 0;

            VideoCaptureDevice videoCaptureSource = new VideoCaptureDevice(videoDevices[devicesCombo.SelectedIndex].MonikerString);
            videoSourcePlayer.VideoSource = videoCaptureSource;
            videoSourcePlayer.Start();
        }

        private void takePictureBtn_Click(object sender, EventArgs e)
        {
            DateTime time = DateTime.Now;              // Use current time
	        string format = "MMM ddd d HH mm yyyy";    // Use this format
            String strFilename = "Capture-"   time.ToString(format)   ".jpg";
            if (videoSourcePlayer.IsRunning)
            {
                Bitmap picture = videoSourcePlayer.GetCurrentVideoFrame();
                picture.Save(strFilename, ImageFormat.Jpeg);
                labelSaved.Text = "Capture Saved : "   strFilename;                
            }
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            videoSourcePlayer.SignalToStop();
            videoSourcePlayer.WaitForStop();
            videoDevices = null;
            videoDevices = null;
        }

        private void devicesCombo_SelectedIndexChanged(object sender, EventArgs e)
        {
            videoSourcePlayer.SignalToStop();
            videoSourcePlayer.WaitForStop();
            VideoCaptureDevice videoCaptureSource = new VideoCaptureDevice(videoDevices[devicesCombo.SelectedIndex].MonikerString);
            videoSourcePlayer.VideoSource = videoCaptureSource;
            videoSourcePlayer.Start();
        }
    }
}

资源下载此资源下载价格为2D币(VIP免费),请先
资源文件列表
Webcam-Capture-AForge.Net-master/.gitignore , 2696
Webcam-Capture-AForge.Net-master/Inscription.sln , 980
Webcam-Capture-AForge.Net-master/Inscription/App.config , 182
Webcam-Capture-AForge.Net-master/Inscription/Form1.Designer.cs , 4698
Webcam-Capture-AForge.Net-master/Inscription/Form1.cs , 2958
Webcam-Capture-AForge.Net-master/Inscription/Form1.resx , 5698
Webcam-Capture-AForge.Net-master/Inscription/Inscription.csproj , 4705
Webcam-Capture-AForge.Net-master/Inscription/Program.cs , 512
Webcam-Capture-AForge.Net-master/Inscription/Properties/AssemblyInfo.cs , 1398
Webcam-Capture-AForge.Net-master/Inscription/Properties/Resources.Designer.cs , 2777
Webcam-Capture-AForge.Net-master/Inscription/Properties/Resources.resx , 5496
Webcam-Capture-AForge.Net-master/Inscription/Properties/Settings.Designer.cs , 1063
Webcam-Capture-AForge.Net-master/Inscription/Properties/Settings.settings , 242
Webcam-Capture-AForge.Net-master/README.md , 839
没有账号? 忘记密码?

社交账号快速登录