2022年c#编写一个摄像头驱动程序 .pdf

上传人:Che****ry 文档编号:34882317 上传时间:2022-08-19 格式:PDF 页数:9 大小:49KB
返回 下载 相关 举报
2022年c#编写一个摄像头驱动程序 .pdf_第1页
第1页 / 共9页
2022年c#编写一个摄像头驱动程序 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年c#编写一个摄像头驱动程序 .pdf》由会员分享,可在线阅读,更多相关《2022年c#编写一个摄像头驱动程序 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本文是借助 avicap32.dll库来驱动摄像头。 做到了抓图、 录像功能。using System; using System.Runtime.InteropServices; using System.Drawing; using System.Drawing.Imaging; namespace using System; using System.Runtime.InteropServices; using System.Drawing; using System.Drawing.Imaging; namespace PickHead / / 一个控制摄像头的类/ public cl

2、ass Pick 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - private const int WM_USER = 0 x400; private const int WS_CHILD = 0 x40000000; private const int WS_VISIBLE = 0 x10000000; private const int WM_CAP_START = WM_USER ; private const int

3、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_SEQUENC

4、E = 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; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9

5、页 - - - - - - - - - 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

6、_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 bStat = false; private IntPtr mControlPtr; private int mWidth; private int mHeight; private int mLeft; 名师资料总结 - - -精品

7、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - private int mTop; / / 初始化摄像头/ / 控件的句柄 / 开始显示的左边距 / 开始显示的上边距 / 要显示的宽度 / 要显示的长度 public Pick(IntPtr handle, int left, int top, int width,int height) mControlPtr = handle; mWidth = width; mHeight = height; mLef

8、t = left; mTop = top; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - DllImport(avicap32.dll) private static extern IntPtr capCreateCaptureWindowA(byte lpszWindowName, int dwStyle, int x, int y, int nWidth, int nHeight, IntPtr hWndParent, i

9、nt nID); DllImport(avicap32.dll) private static extern int capGetVideoFormat(IntPtr hWnd, IntPtr psVideoFormat, int wSize ); DllImport(User32.dll) private static extern bool SendMessage(IntPtr hWnd, int wMsg, int wParam, long lParam); / / 开始显示图像/ public void Start() if (bStat) 名师资料总结 - - -精品资料欢迎下载 -

10、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - return; bStat = true; byte lpszName = new byte100; hWndC = capCreateCaptureWindowA(lpszName,WS_CHILD|WS_VISIBLE ,mLeft,mTop,mWidth,mHeight,mControlPtr,0); if (hWndC.ToInt32() != 0) SendMessage(hWndC, WM_CAP_SET_CAL

11、LBACK_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); 名师资料总结 - - -精品资料欢迎下载 -

12、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0); SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0); return; / / 停止显示/ public void Stop() SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0); bStat = false; 名师资料总结 - - -精品资料欢迎

13、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - / / 抓图/ / 要保存 bmp 文件的路径 public void GrabImage(string path) IntPtr hBmp = Marshal.StringToHGlobalAnsi(path); SendMessage(hWndC,WM_CAP_SAVEDIB,0,hBmp.ToInt64(); / / 录像/ / 要保存 avi 文件的路径 public void Kinescope(strin

14、g path) IntPtr hBmp = Marshal.StringToHGlobalAnsi(path); SendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - FILEA,0,hBmp.ToInt64(); SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0); / / 停止录像/ public void StopKinescope() SendMessage(hWndC, WM_CAP_STOP, 0, 0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁