如何用videocapx.ocx控件在vfp中制作照片采集程序

如何用videocapx.ocx控件在vfp中制作照片采集程序,第1张

1.

新建表单

2.

增加念芦 VideoCapX 控件

3,

增加 Button 按钮

click 事件:Thisform.vcx.ShowVideoSourceDlg

4.

关键事件

表单的 INIT 事件

*!*连枣高颂接音频驱动

Thisform.vcx.CaptureAudio = .T.

Thisform.vcx.PreviewAudio = .T.

*!* 连接视频驱动

Thisform.vcx.Connected = .T.

*!* 设置视频大小

*!* Thisform.vcx.SetVideoFormat (640, 480) &&(320, 240)

*!* 开始预览

*!* Thisform.vcx.UseVideoFilter = .T.

*!* Thisform.vcx.Preview = .T.

Run 表单凳郑

9 OK 了

pX=0&&设置剪裁区域Thisformset.Form2.PicClip.ClipY=OThisformset.Form2.PicClip.ClipHeightAVCap.VideoHeightThisformset.Form2.PicClip.ClipWidthlisformset.F0rm2.=11lisformset.Form2.AVCap·VideoHeight314.SavePicture(Thisformset.Form2.PicClip.Clip。cPicFile_bmp)&&通过PicClip32.OCx控件将照片剪裁后原名保存Thisformset.Form2.ImgEdit.Height=Thisformset.Form2.Pic-Clip.ClipHeightThisformset.Form2.IrrIsEdit.Width=Thisformset.Form2.AV-Cap.VideoHeight(3/4)Thisformset.Form2.ImgEdit.Image=cPicFile_bmp&&读入位图Thisformset.Form2.ImgEdit.正指Display&&显示位图Thisformset.Form2.ImgFAit.SaveAs(cPicFile..jpg,6。6。6。64。.T.、&&通过Imgedit.OCX控件举稿配将照片压缩并转换为”JPG”格式Erase&cPicFile_bmp&&删除bmp位图文件Thisformset.Form1.Image1.Picture=cPicFile_.jpg&&显示jpg照片ENDIFTHISF0RM.REfRESH◆”停止”按钮(Command4)的Click过程代码Thisform.Command3-Enabled=.F.Thisformset.Form2.Visible=.F.Thisformset.Form2.AVCap.PlayState=0&&停止播放视频3.结束语本例使用AVCAP.OCX、PicClp32.OCX和ImgEdit.ocx控件的方法。实现了摄像头照相功能。只要运行程序就可以轻松地进行照相,既可以现场拍照,也可以将照片翻拍。 *** 作过程简便快捷。在程序设计过程中。PicClip32.OCx控件的剪裁区域不能超出AVCap.OCX控件实际抓取的位图范围.避免因改变摄像头的分辨率而导致剪裁出错.最好设置剪裁区域的大小和位置与AV.Cap.OCX控件一样,使剪裁出的照片与预览的相一致,这是因为AVCap.OCX控件实际捕捉的图像大小与摄像头的分辨率相对应。而与控件显示的大小无关(假如摄像头的分辨率为640x480像素。而AVCap.OCX控件的大小为320x240像素,实际捕捉的bmp图像大小仍然为640x480像素)。另外.在应用程序的安装发布过程中,相关的Active控件AVCAP.OCX、PicC,lp32.OCx、ImgcEdit.OCX等文件也必须一起发布。确保应用程敬银序正常运行。本例在Windows2000、VisualFoxpro6.0环境下调试通过

2、clear

?"1到100之内的所有素数:"

s=0

for i=2 to 100

x=0

for j=2 to i-1

if i/j=int(i/j)

x=1

endif

endfor

if x=0

??alltrim(str(i))+space(2)

s=s+i

endif

endfor

?"它们的和余郑是:",s

3、clear

?"1到1000之间所有奇数的和:"

s=0

for i=1 to 1000

if mod(i,2)<>0

s=s+i

endif

endfor

?s

4、command1的click代码:

if ALLTRIM(thisform.text1.value)="12345".and.alltrim(thisform.text2.value)="abcd"

messagebox("欢迎进入QQ世界")

else

messagebox("你的用户名或密码是错误的!")

endif

5、1)select * from STUDENT where 入学成绩>500

2)select 学号,姓名,专业信息 from STUDENT where substr(alltrim(姓名),1,2)="李"

3)count for 性别="女" to mm

6、CLEAR

SET UDFPARMS TO REFERENCE &&地址传递

DIME AAA(10)

FOR i= 1 TO 10

input "请输入第"+ALLTRIM(STR(i))+"个数:" to AAA(i)

NEXT

=MySort(AAA,10) &&调用冒泡排序函数.

i=1

?"从大到小排序结果为:"

do while i<=10

??AAA(i) &&显竖唯颂示排完序后的数据.

i=i+1

enddo

RETURN

*冒泡排序函数.

*参山吵数: pData: 传入数组, nCount:数组的大小.

function MySort

para pData, nCount

for i=1 to nCount

for j=nCount to i+1 step -1

if pData(j)>pData(j-1)

iTemp = pData[j-1]

pData(j-1) = pData[j]

pData(j) = iTemp

endif

endfor

endfor

endfunc


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12302095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存