C#摄像头实现拍照功能的简单代码示例
- using System;
- using System.Runtime.InteropServices;
- using System.Drawing;
- using System.Drawing.Imaging;
- namespace Video
- {
- ///
- /// 一个C#摄像头控制类
- ///
- public class VideoWork
- {
- private const int WM_USER = 0x400;
- private const int WS_CHILD = 0x40000000;
- private const int WS_VISIBLE = 0x10000000;
- private const int WM_CAP_START = WM_USER;
- private const int WM_CAP_STOP = WM_CAP_START + 68;
- private const int WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
- private const int WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
- private const int WM_CAP_SAVEDIB = WM_CAP_START + 25;
- private const int WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
- private const int WM_CAP_SEQUENCE = WM_CAP_START + 62;
- private const int WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;
- private const int WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+ 63;
- private const int WM_CAP_SET_OVERLAY =WM_CAP_START+ 51;
- private const int WM_CAP_SET_PREVIEW =WM_CAP_START+ 50;
- private const int WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6;
- private const int WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2;
- private const int WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3;
- private const int WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5;
- private const int WM_CAP_SET_SCALE=WM_CAP_START+ 53;
- private const int WM_CAP_SET_PREVIEWRATE=WM_CAP_START+ 52;
- private IntPtr hWndC;
- private bool bWorkStart = false;
- private IntPtr mControlPtr;
- private int mWidth;
- private int mHeight;
- private int mLeft;
- private int mTop;
- ///
- /// 初始化显示图像
- ///
- /// 控件的句柄
- /// 开始显示的左边距
- /// 开始显示的上边距
- /// 要显示的宽度
- /// 要显示的长度 <