C#摄像头源码是一个用C#编写程序调用摄像头的代码。网上搜集了一些资料以及解决的一些小问题,在此记录以便后续使用。
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
public class VideoWork
{
private const int WM_USER = 0×400;
private const int WS_CHILD = 0×40000000;
private const int WS_VISIBLE = 0×10000000;
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;
/// <summary>
/// 初始化显示图像
/// </summary>
/// <param name= “handle “> 控件的句柄 </param>
/// <param name= “left “> 开始显示的左边距 </param>
/// <param name= “top “> 开始显示的上边距 </param>
/// <param name= “width “> 要显示的宽度 </param>
/// <param name= “height “> 要显示的长度 </param>
public VideoWork(IntPtr handle, int left, int top, int width, int height)
{
mControlPtr = handle;
mWidth = width;
mHeight = height;
mLeft = left;
mTop = top;
}
[DllImport("avicap32.dll ")]
private static extern IntPtr capCreateCaptureWindowA(byte[] lpszWindowName, int dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hWndParent, int nID);
[DllImport("avicap32.dll ")]
private static extern int capGetVideoFormat(IntPtr hWnd, IntPtr psVideoFormat, int wSize);
//
//这里特别注意,因为WinAPI中的long为32位,而C#中的long为64wei,所以需要将lParam该为int
//
[DllImport("User32.dll ")]
private static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam);
/// <summary>
/// 开始显示图像
/// </summary>
public void Start()
{
if (bWorkStart)
return;
bWorkStart = true;
byte[] lpszName = new byte[100];
hWndC = capCreateCaptureWindowA(lpszName, WS_CHILD | WS_VISIBLE, mLeft, mTop, mWidth, mHeight, mControlPtr, 0);
if (hWndC.ToInt32() != 0)
{
SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
//Global.log.Write( “SendMessage “);
}
return;
}
/// <summary>
/// 停止显示
/// </summary>
public void Stop()
{
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
bWorkStart = false;
}
/// <summary>
/// 抓图
/// </summary>
/// <param name= “path “> 要保存bmp文件的路径 </param>
public void GrabImage(string path)
{
IntPtr hBmp = Marshal.StringToHGlobalAnsi(path);
SendMessage(hWndC, WM_CAP_SAVEDIB, 0, hBmp.ToInt32());
}
}
调用方法:
在窗体上拖入一个panel
调用代码为:
VideoWork wv = new VideoWork(panel1.Handle, 0, 0, panel1.Width, panel1.Height);
wv.Start();
- PC官方版
- 安卓官方手机版
- IOS官方手机版












oelove婚恋交友系统v8.1 十周年版
sqltoy-orm框架v4.18.13最新版
flutter聊天源码开源完整版
最新版抖商精灵源码4.1暖场升级版
完整版经典C#WinForm实例源码共200个
android5使用poi读取excel源代码
香程互赞宝源码免授权版
百度小程序转微信小程序1.0 最新免费版
BCM文件转换工具(BCM源码格式化)2.7.2 简体中文版
易语言资源网源码下载工具1.0 中文免费版
缩狗图床源码免费版
24个c++游戏源码完整版
嵌入式图像处理C语言源码免费下载
腾讯AI语音合成源码最新免费版
DSShop单用户B2C开源PHP商城系统TP框架1.6 最新版
易之源(最好的源码解析工具)v1.0 免费版
妖气山视频管理系统源码免费下载
魔性机器人网页代码免费下载
净网小助手源码2.2.1 最新完整版
易语言源码误删恢复器1.0 官方版
微擎微赞一物一码抽奖模块源码最新完整版
微信小程序模板源码50个实用程序
Android poi 操作doc excel pdf
Amoli私有云4.2.2 2019.08.08 最新版
LaySNS轻社区系统2.55 最新版
可可网络验证系统9.5 官方版
源码编辑器软件3.4.13 电脑版
Activiti(开源bpm软件)6.0.0 官方最新版
悟空crm系统源码9.0_20191202 官方最新版
帝国网站管理系统7.5.0 官网正式版





Android Studio 源码2.4 免费下载
浮梦QQ工具箱易语言源码1.0免费版
易语言电脑开机自动拍照发指定邮箱源码5.5
ECSHOP家居网上商城模块源码2.7.2免费畅享版
CF狄克改枪源码免费打包下载
仿腾讯新闻门户网站管理系统模板源码v2.0 正
mpycQQ机器人插件源码2016 最新版
似水年华同学录破解版2.2 正式版php源码
UCKeFu客户支持服务平台源码1.2.0 免费下载