C#攝像頭源碼是一個用C#編寫程序調(diào)用攝像頭的代碼。網(wǎng)上搜集了一些資料以及解決的一些小問題,在此記錄以便后續(xù)使用。
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= “l(fā)eft “> 開始顯示的左邊距 </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());
}
}
調(diào)用方法:
在窗體上拖入一個panel
調(diào)用代碼為:
VideoWork wv = new VideoWork(panel1.Handle, 0, 0, panel1.Width, panel1.Height);
wv.Start();
- PC官方版
- 安卓官方手機版
- IOS官方手機版












oelove婚戀交友系統(tǒng)v8.1 十周年版
sqltoy-orm框架v4.18.13最新版
flutter聊天源碼開源完整版
最新版抖商精靈源碼4.1暖場升級版
完整版經(jīng)典C#WinForm實例源碼共200個
android5使用poi讀取excel源代碼
香程互贊寶源碼免授權版
百度小程序轉(zhuǎn)微信小程序1.0 最新免費版
BCM文件轉(zhuǎn)換工具(BCM源碼格式化)2.7.2 簡體中文版
易語言資源網(wǎng)源碼下載工具1.0 中文免費版
縮狗圖床源碼免費版
24個c++游戲源碼完整版
嵌入式圖像處理C語言源碼免費下載
騰訊AI語音合成源碼最新免費版
DSShop單用戶B2C開源PHP商城系統(tǒng)TP框架1.6 最新版
易之源(最好的源碼解析工具)v1.0 免費版
妖氣山視頻管理系統(tǒng)源碼免費下載
魔性機器人網(wǎng)頁代碼免費下載
凈網(wǎng)小助手源碼2.2.1 最新完整版
易語言源碼誤刪恢復器1.0 官方版
微擎微贊一物一碼抽獎模塊源碼最新完整版
微信小程序模板源碼50個實用程序
Android poi 操作doc excel pdf
Amoli私有云4.2.2 2019.08.08 最新版
LaySNS輕社區(qū)系統(tǒng)2.55 最新版
可可網(wǎng)絡驗證系統(tǒng)9.5 官方版
源碼編輯器軟件3.4.13 電腦版
Activiti(開源bpm軟件)6.0.0 官方最新版
悟空crm系統(tǒng)源碼9.0_20191202 官方最新版
帝國網(wǎng)站管理系統(tǒng)7.5.0 官網(wǎng)正式版





Android Studio 源碼2.4 免費下載
浮夢QQ工具箱易語言源碼1.0免費版
易語言電腦開機自動拍照發(fā)指定郵箱源碼5.5
ECSHOP家居網(wǎng)上商城模塊源碼2.7.2免費暢享版
CF狄克改槍源碼免費打包下載
仿騰訊新聞門戶網(wǎng)站管理系統(tǒng)模板源碼v2.0 正
mpycQQ機器人插件源碼2016 最新版
似水年華同學錄破解版2.2 正式版php源碼
UCKeFu客戶支持服務平臺源碼1.2.0 免費下載