


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国际产品授权分销合同
- 办公家具采购合同一
- 商品买卖合同「样本」
- 商业地产买卖合同模板范文
- 公司设立投资合作合同范本
- 矿山弃渣处理合同范本
- 消防及安全整改合同履行细则
- 校企合作合同新范本
- 土地使用权出让合同及物业销售细则
- 趸船结构培训课件
- 2025年黑龙江民族职业学院单招职业技能测试题库附答案
- 年产60万吨掺混肥项目可行性研究报告申请立项
- 2025年茂名市高三年级第一次综合测试(一模)物理试卷(含答案)
- 《电子商务法律法规》电子商务专业全套教学课件
- 《产后出血预防与处理指南(2023)》解读课件
- 全套教学课件《工程伦理学》
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 2024年山东经贸职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 清华大学考生自述
- GB 29444-2012煤炭井工开采单位产品能源消耗限额
- 幼儿园中班绘本:《我喜欢我的小毯子》
评论
0/150
提交评论