



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VFP照像程序说明硬件准备 1. 能运行Windows 98或更高的计算机。 2. USB接口摄像头一只。 将USB摄像头接入电脑,安装好驱动程序和应用软件,打开应用软件,在Video Format设置中将其Image Size(图像尺寸)设为CIF(352288)。 软件准备 1. Visual Foxpro(6.0以上版本,以下简称VFP)。 2. AvCap.ocx控件 AvCap是一个基于DirectShow过滤器的音/视频捕捉和预览的ActiveX控件。在应用程序或页面中放一个AvCap,只需很少的代码就可让您的软件支持音/视频捕捉了。 3. PicClp32.ocx控件(类名PictureClip)。 本控件位于Windows的System或System32文件夹内,在安装VFP时被自动安装。 由于使用AvCap控件所捕捉的图像尺寸与实际应用时的图像尺寸不太一致,因此需用PictureClip控件将其剪裁为指定尺寸。用它的Picture属性将源位图加载到控件中,再用ClipX和ClipY属性指定剪裁区域的左上角。用 ClipHeight和ClipWidth属性指定剪裁区域的范围。然后利用VFP的SavePicture函数将其写入到指定的位图文件中。 编程 1 准备工作 (1)为便于管理,在某驱动器(如D盘)的根目录下建一子目录Photo,将下载的AcCap.ocx控件拷入该目录,用“画笔”程序画一图像,高宽=288216(如图1),命名为Default.bmp,将其保存入Photo目录。在本目录下再建一子目录Bmp,用于存放拍照的照片。 图1 默认图片 (2)建一数据库表Student.dbf,将其存入Photo目录,表结构如图2。 图2 数据表 在图2所示表中,索引类型设为“候选索引”的目的是保证学生在数据库表中的惟一性。在电子照相时,以学号作为该学生的照片文件名,可避免重复。xh(学号)字段的8位可按如下格式输入,如20040001,其中前四位代表入学年级,后四位代表学生序列,学号范围从20040001至20049999。 (3)注册控件:可在命令行方式下注册两个控件,如:regsvr32 AvCap.ocx、regsvr32 PicClp32.ocx,也可在VFP环境中,通过菜单“工具选项控件ActiveX控件”方式来注册。 2 制作表单 (1)运行VFP,建立如图3所示的表单集Formset1,添加两个表单Form1和Form2。设置Form1的Caption属性为预览窗口,在其内添加AvCap控件,控件的Name属性设为OleAvCap;设置Form2的Caption属性为照相窗口,在其内添加如图3所示的6个控件(图像剪裁控件PictureClip、图像控件Image、列表框控件List、命令按钮控件CommandButton三个),控件的Name属性分别设为OlePicClip 、Image1、List1、CmdPhoto、CmdNext、CmdQuit。 图3 制作表单 (2)将数据库表Student.dbf添加到该表单集的数据环境中去,将CurSor1的Order属性设为xh。 (3)编写程序代码: 在Formset1的Init Event(即Formset1.Init)中添加以下代码: IF thisformset.form1.oleAvCap.CurVcd=0 thisformset.form1.oleAvCap.PlayState =1 ELSE =Messagebox(视频设备连接不上! +chr(13)+请检查电源线或数据线!, 0+16,错误信息!) RETU .F. ENDIF thisformset.form2.CmdPhoto.setfocus 在Form1的Init Event(即Form1.Init)中添加以下代码: this.Left=3 this.Top=1 this.Width=216 &与下面要拍照的照片宽度一致 this.Height=312 this.MaxButton=.F. this.MinButton=.F. this.ControlBox=.F. this.BorderStyle=1 this.Caption=预览窗口 *以下设置AvCap控件的大小及位置 this.OleAvCap.Top=12 this.OleAvCap.Width=352 this.OleAvCap.Height=288 this.OleAvCap.Left=-(352-216)/2 &将本控件居中,保证视频流中人像居中 在Form2的Init Event(即Form2.Init)中添加以下代码: this.Left=228 this.Top=1 this.Width=394 this.Height=394 this.MaxButton=.F. this.MinButton=.F. this.ControlBox=.F. this.BorderStyle=1 this.Caption=照相窗口 *以下设置image控件的大小、位置等属性 this.image1.Left=10 this.image1.Top=12 this.image1.Width=216 this.image1.Height=288 this.image1.BorderStyle=1 IF file(bmp/+xh+.bmp) this.image1.picture=bmp/+xh+.bmp ELSE this.image1.picture=default.bmp ENDIF *以下设置List控件的大小、位置等属性 this.List1.ColumnCount=2 this.List1.Left=236 this.List1.Top=12 this.List1.Width=148 this.List1.Height=288 this.List1.FontSize=12 this.List1.RowSourceType=0 this.List1.RowSource=student.xh,xm this.List1.RowSourceType=6 this.List1.ListItemId=1 在List1的InteractiveChange Event中添加以下代码: *以下代码保证记录变动后,学生照片跟着刷新 IF file(bmp/+xh+.bmp) thisform.image1.picture=bmp/+xh+.bmp ELSE thisform.image1.picture=default.bmp ENDIF thisform.CmdPhoto.setfocus 在CmdPhoto的Click Event(CmdPhoto.Click)中添加以下代码: IF file(bmp/+xh+.bmp) ?chr(7) nChoice=Messagebox(照片已存在!+chr(13)+chr(13)+替换吗?, 4+32+256,提示信息!) IF nChoice=6 &选择YES *以下代码先抓取当前视频流中的一幅图像将其保存为大照片 * thisformset.form1.OleAvCap.TakePictureToFile(bmp/+xh+.bmp) *以下代码通过PicClip32.ocx控件将大照片剪裁为小照片* thisform.OlePicClip.picture=loadpicture(bmp/+xh+.bmp) thisform.OlePicClip.clipx=(352-216)/2+1 thisform.OlePicClip.clipy=0 thisform.OlePicClip.clipheight=288 thisform.OlePicClip.clipwidth=216 SavePicture(thisform.OlePicClip.clip,bmp/+xh+.bmp) ENDIF ELSE thisformset.form1.OleAvCap.TakePictureToFile(bmp/+xh+.bmp) thisform.OlePicClip.picture=loadpicture(bmp/+xh+.bmp) thisform.OlePicClip.clipx=(352-216)/2+1 thisform.OlePicClip.clipy=0 thisform.OlePicClip.clipheight=288 thisform.OlePicClip.clipwidth=216 SavePicture(thisform.OlePicClip.clip,bmp/+xh+.bmp) ENDIF thisform.List1.InteractiveChange &刷新照片 this.parent.CmdNext.setfocus &与CmdNext按钮转换焦点实现轻松拍照 在CmdNext的Click Event(CmdNext.Click)中添加以下代码: thisform.List1.ListItemId=thisform.List1.ListItemId+1 thisform.List1.InteractiveChange &刷新照片 this.p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- phpmysql考试试题及答案
- 电线回收知识培训课件
- 电瓶车维修技术知识培训课件
- 高空安全教育课件
- 北科大附中开学考试题及答案
- 北京大学高数期末考试及答案
- 北关医院招聘考试题目及答案
- 天车初级考试题及答案
- 电焊安全和防护知识培训课件
- 考试题及答案小学
- 基孔肯雅热医疗机构发热-门诊应急处置演练脚本
- 生产安全应急预案汇报
- 2025年重庆对外建设集团招聘41人笔试参考题库附带答案详解(10套)
- 2025年事业单位工勤技能-安徽-安徽水土保持工五级(初级工)历年参考题库含答案解析(5卷套题【单选100题】)
- 2025年秋季新学期第一次全体教师大会上校长讲话:四重人生境界一颗育人初心-新学期致每位教书人
- 精英人才管理办法
- 2023年经济法基础第四章税法概述及货物和劳务税法律制度课件讲义
- 蚊虫消杀培训课件
- 秋季行车安全课件
- 智能建筑中机器人的应用与装配式施工技术
- 支架术后护理常规课件
评论
0/150
提交评论