C#调用电脑摄像头拍照

 

1.打开VS2019,新建一个Form窗体,工具->NuGet包管理工具->管理解决方案的NuGet包,在浏览里搜索AForge.Controls、AForge.Video.DirectShow,安装AForge.Controls和AForge.Video.DirectShow

2.安装AForge组件完成后,VS工具箱会新增AForge控件,把AForge.NET中的VideoSourcePlayer拖到Form窗体上

 3.关键代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

#region 变量

/// <summary>

/// 摄像头设备集合

/// </summary>

FilterInfoCollection videoDevices;

/// <summary>

/// 捕获设备资源

/// </summary>

VideoCaptureDevice videoSource;

/// <summary>

/// 处理图片

/// </summary>

Bitmap bitImg;

#endregion

/// <summary>

/// 先检测摄像头

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void Form1_Load(object sender, EventArgs e)

{

    //检测电脑所有的摄像头

    videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

    MessageBox.Show("检测到了【" + videoDevices.Count.ToString() + "】个摄像头");

    //获取需要拍照的设备

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

    videoSourcePlayer1.VideoSource = videoSource;

    //启动摄像头

    videoSourcePlayer1.Start();

}

/// <summary>

/// 拍照

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void button1_Click(object sender, EventArgs e)

{

    //拍摄并获取图片

    bitImg = videoSourcePlayer1.GetCurrentVideoFrame();

}

/// <summary>

/// 关闭摄像头

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void button2_Click(object sender, EventArgs e)

{

    ShutCamera();

}

/// <summary>

/// 关闭并释放摄像头

/// </summary>

public void ShutCamera()

{

    if (videoSourcePlayer1.VideoSource != null)

    {

        videoSourcePlayer1.SignalToStop();

        videoSourcePlayer1.WaitForStop();

        videoSourcePlayer1.VideoSource = null;

    }

}

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值