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 最新免费版
2020新版双端影视APP源码完整免费版
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 免费下载
33款易语言皮肤模块2.1 绿色免费版
MySQL的数据库管理工具(phpMyAdmin)4.4.12
ewebeditor 在线编辑 FOR ASPv4.4 完整版
易语言小说阅读器源码
CF魔方人机一键卡枪源码2017 【新增AK47黑武