C#实现摄像头拍照功能的简单代码示例

2025-01-02 03:09:32   小编

C#实现摄像头拍照功能的简单代码示例

在许多应用场景中,我们可能需要通过程序控制摄像头进行拍照,比如安防监控系统、证件拍照应用等。在C#中,实现这一功能并非难事,下面为大家提供一个简单的代码示例。

我们需要引用相关的命名空间。在C#中,我们可以使用AForge.VideoAForge.Video.DirectShow这两个命名空间来操作摄像头。如果没有安装这些库,可以通过NuGet包管理器进行安装。

接下来,创建一个Windows Forms应用程序项目。在窗体设计界面添加一个PictureBox控件用于显示摄像头画面,以及一个Button控件用于触发拍照操作。

以下是核心代码部分:

using AForge.Video;
using AForge.Video.DirectShow;

public partial class Form1 : Form
{
    private FilterInfoCollection videoDevices;
    private VideoCaptureDevice videoSource;

    public Form1()
    {
        InitializeComponent();
        videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
        if (videoDevices.Count > 0)
        {
            videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
            videoSource.NewFrame += new NewFrameEventHandler(VideoSource_NewFrame);
            videoSource.Start();
        }
    }

    private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
    {
        pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (pictureBox1.Image!= null)
        {
            pictureBox1.Image.Save("photo.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }
    }
}

在上述代码中,我们首先获取可用的摄像头设备列表,然后选择第一个设备并启动它。当有新的帧数据时,会将其显示在PictureBox控件中。当点击拍照按钮时,会将当前PictureBox中的图像保存为JPEG格式的文件。

需要注意的是,这只是一个简单的示例代码,实际应用中可能需要添加更多的错误处理和功能扩展。例如,选择不同的摄像头设备、设置拍照参数等。

通过这个简单的代码示例,我们可以快速实现C#中摄像头拍照的功能,为开发相关应用提供了一个基础。开发者可以根据自己的需求对代码进行进一步的优化和完善。

TAGS: 功能实现 代码示例 摄像头拍照 C#

欢迎使用万千站长工具!

Welcome to www.zzTool.com