版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Delphi 编程控制摄像头你的电脑有没有摄像头?看到别人用QQ 玩视屏你会不会去想怎么实现的?这里介绍使用DELPHI 使用 MS 的AVICAP32.DLL就可轻松的实现对摄像头编程,假如再加上你的网络编程水平,实现一个视屏聊天就不成什么问题了。看看下面代码的代码:constWM_CAP_START=WM_US.你的电脑有没有摄像头?看到别人用QQ 玩视屏你会不会去想怎么实现的?这里介绍使用DELPHI 使用 MS 的 AVICAP32.DLL就可轻松的实现对摄像头编程,假如再加上你的网络编程水平,实现一个视屏聊天就不成什么问题了。看看下面代码的代码:constWM_CAP_START=W
2、M_USER;constWM_CAP_STOP=WM_CAP_START 68;constWM_CAP_DRIVER_CONNECT=WM_CAP_START 10;constWM_CAP_DRIVER_DISCONNECT=WM_CAP_START11;constWM_CAP_SA VEDIB=WM_CAP_START 25; constWM_CAP_GRAB_FRAME=WM_CAP_START 60; constWM_CAP_SEQUENCE=WM_CAP_START 62;constWM_CAP_FILE_SET_CAPTURE_FILEA=WM_CAP_S TART 20;const
3、WM_CAP_SEQUENCE_NOFILE=WM_CAP_START 63 constWM_CAP_SET_OVERLAY=WM_CAP_START 51 constWM_CAP_SET_PREVIEW=WM_CAP_START 50constWM_CAP_SET_CALLBACK_VIDEOSTREAM=WM_C AP_START 6;constWM_CAP_SET_CALLBACK_ERROR=WM_CAP_STA RT 2;constWM_CAP_SET_CALLBACK_STATUSA=WM_CAP_ST ART 3;constWM_CAP_SET_CALLBACK_FRAME=WM
4、_CAP_STA RT 5;constWM_CAP_SET_SCALE=WM_CAP_START 53constWM_CAP_SET_PREVIEWRATE=WM_CAP_START 52functioncapCreateCaptureWindowA(lpszWindowName:PCHAR;dwStyle:longint;x:integer;y:integer;nWidth:integer;nHeight:integer;ParentWin:HWND;nId:integer):HWND;STDCALLEXTERNALAVICAP32.DLL ;上面的代码就是我们主要用到的一个函数和常量的定义
5、。好了,打开你的 Delphi ,新建一个工程,将上面的定义加上吧。新建一个窗口, 放个 Panel 上去,添加一个按钮, Caption 设置为 "开始 "这里需要定义一个全局变量,varhWndC:THandle;开始按钮代码如下:beginhWndC:=capCreateCaptureWindowA( MyOwnCaptureWindow,WS_CHILDorWS_VISIBLE,Panel1.Left,Panel1.Top,Panel1. Width,Panel1.Height,Form1.Handle,0);hWndC:=capCreateCaptureWindo
6、wA( MyOwnCaptureWindow,WS_CHILDorWS_VISIBLE,Panel1.Left,Panel1.Top,Panel1.Width,Panel1.Height,Form1.Handle,0);ifhWndC<>0thenbeginSendMessage(hWndC,WM_CAP_SET_CALLBACK_VIDEOS TREAM,0,0);SendMessage(hWndC,WM_CAP_SET_CALLBACK_ERROR, 0,0);SendMessage(hWndC,WM_CAP_SET_CALLBACK_STATUS A,0,0)
7、;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); end;按 F9 运行一下,怎么样,是不是可以看到摄像头的视屏了?那怎么停下来?再加个按钮caption设置成"停止 "代码如下:ifh
8、WndC<>0thenbeginSendMessage(hWndC,WM_CAP_DRIVER_DISCONNECT,0,0);hWndC:=0;end;视屏截到了,怎么把它给保存下来呢?下面按两种方式保存, 一个是 BMP 静态图,一个是 AVI 动画。再放三个按钮到窗体上去, caption 分别设置成 " 保存 BMP" 、" 开始录像 " 、 "停止录像 "三个按钮的代码分别如下:/保存 BMPifhWndC<>0thenbeginSendMessage(hWndC,WM
9、_CAP_SA VEDIB,0,longint(pchar( c:est.bmp );end;/开始录像ifhWndC<>0thenbeginSendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FIL EA,0,Longint(pchar( c:est.avi );SendMessage(hWndC,WM_CAP_SEQUENCE,0,0);end;/停止录像ifhWndC<>0thenbeginSendMessage(hWndC,WM_CAP_STOP,0,0);end;再运行看看吧。 。可以保存几张图看
10、看, 也可以录成 AVI 以后慢慢欣赏。程序运行效果: 相关贴图 完整的程序代码如下:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ExtCtrls;typeTForm1=class(TForm)Panel1:TPanel;Button1:TButton;Button2:TButton;Button3:TButton;Button4:TButton;Button5:TButton;procedureButton1Click(Se
11、nder:TObject);procedureButton2Click(Sender:TObject);procedureButton3Click(Sender:TObject);procedureButton4Click(Sender:TObject);procedureButton5Click(Sender:TObject);procedureFormClose(Sender:TObject;varAction:TCloseAction);privatehWndC:THandle;publicPublicdeclarationsend;varForm1:TForm1;constWM_CAP
12、_START=WM_USER; constWM_CAP_STOP=WM_CAP_START 68;constWM_CAP_DRIVER_CONNECT=WM_CAP_START 10;constWM_CAP_DRIVER_DISCONNECT=WM_CAP_START 11;constWM_CAP_SA VEDIB=WM_CAP_START 25; constWM_CAP_GRAB_FRAME=WM_CAP_START 60; constWM_CAP_SEQUENCE=WM_CAP_START 62;constWM_CAP_FILE_SET_CAPTURE_FILEA=WM_CAP_START
13、 20;constWM_CAP_SEQUENCE_NOFILE=WM_CAP_START 63 constWM_CAP_SET_OVERLAY=WM_CAP_START 51 constWM_CAP_SET_PREVIEW=WM_CAP_START 50constWM_CAP_SET_CALLBACK_VIDEOSTREAM=WM_C AP_START 6;constWM_CAP_SET_CALLBACK_ERROR=WM_CAP_STA RT 2;constWM_CAP_SET_CALLBACK_STATUSA=WM_CAP_ST ART 3;constWM_CAP_SET_CALLBACK
14、_FRAME=WM_CAP_STA RT 5;constWM_CAP_SET_SCALE=WM_CAP_START 53constWM_CAP_SET_PREVIEWRATE=WM_CAP_START 52functioncapCreateCaptureWindowA(lpszWindowName:PCHAR;dwStyle:longint;x:integer;y:integer;nWidth:integer;nHeight:integer;ParentWin:HWND;nId:integer):HWND;STDCALLEXTERNAL AVICAP32.DLL ;implementation
15、$R*.dfmprocedureTForm1.Button1Click(Sender:TObject); beginhWndC:=capCreateCaptureWindowA( MyOwnCaptureWindow ,WS_CHILDorWS_VISIBLE,Panel1.Left,Panel1.Top,Panel1. Width,Panel1.Height,Form1.Handle,0);hWndC:=capCreateCaptureWindowA( MyOwnCaptureWindow,WS_CHILDorWS_VISIBLE,Panel1.Left,Panel1.Top,Panel1.
16、Width,Panel1.Height,Form1.Handle,0);ifhWndC<>0thenbeginSendMessage(hWndC,WM_CAP_SET_CALLBACK_VIDEOS TREAM,0,0);SendMessage(hWndC,WM_CAP_SET_CALLBACK_ERROR, 0,0);SendMessage(hWndC,WM_CAP_SET_CALLBACK_STATUS A,0,0);SendMessage(hWndC,WM_CAP_DRIVER_CONNECT,0,0); SendMessage(hWndC,WM_CAP_SE
17、T_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); end;end;procedureTForm1.Button2Click(Sender:TObject);beginifhWndC<>0thenbeginSendMessage(hWndC,WM_CAP_DRIVER_DISCONNECT,0,0 );hWndC:=0;end
18、;end;procedureTForm1.Button3Click(Sender:TObject);beginifhWndC<>0thenbeginSendMessage(hWndC,WM_CAP_SA VEDIB,0,longint(pchar( c:est.bmp );end;end;procedureTForm1.Button4Click(Sender:TObject); beginifhWndC<>0thenbeginSendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0,Longint(pchar( c:est.avi );SendMessage(hWndC,WM_CAP_SEQUENCE,0,0);end;end;proce
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南通市2026-2027学年高三上学期9月学情调研物理试题(含答案)
- 河北衡水中学教育集团2026-2027学年高三上学期9月第一次限时训练数学试题(含简略答案)
- 2026幼儿园年级主任工作汇报课件:静待花开做幸福的班主任
- 2026师生气象灾害预警与应对课件
- 2026九年一贯制学校学科带头人工作汇报课件:用爱与责任守护青春
- 2026儿童肺结核防治专题培训课件
- 2026新学期心脑血管疾病的早期信号健康教育课件
- 2025-2026年天津市苏教版八年级物理上册第4章同步练习题
- 2025-2026年湖南省部编版九年级化学下册第11单元课后练习题
- 药物治疗与疼痛管理方案探讨
- 行程开关知识课件
- 机械顶管工作井及接收井逆作法施工方案
- 大脑中动脉血栓形成的护理查房
- 柴油安全技术说明书(MSDS)
- HY/T 0366-2023海洋数据分类分级标准
- 全国职业技能竞赛焊工理论考试题库
- 残联招聘笔试试题(答案)
- 三上道德与法治第一单元《战胜困难更快乐》课件
- GB/T 37573-2019露天煤矿边坡稳定性年度评价技术规范
- GB/T 30790.2-2014色漆和清漆防护涂料体系对钢结构的防腐蚀保护第2部分:环境分类
- GB/T 16927.3-2010高电压试验技术第3部分:现场试验的定义及要求
评论
0/150
提交评论