注册 登录
编程论坛 VFP论坛

高手请进,vfp照相问题

wxyh01 发布于 2022-05-14 21:29, 1753 次点击
只有本站会员才能查看附件,请 登录
求一个这样的摄像程序,或者说哪位大神指点着做一下,也 或者说给反编一下,只是学着做一下,由于 水平有限,肯请指点
14 回复
#2
zhken2022-05-14 21:52
https://blog.  VFP调用API来控件USB摄像头,实现拍照或录像。
参考这个,加上一个截图功能很容易实现
#3
foxfans2022-05-14 21:54
#4
sych2022-05-15 08:18
怎么又发了一遍?
别人的回帖难道从来不看吗?

[此贴子已经被作者于2022-5-15 08:19编辑过]

#5
aqyejun2022-05-17 16:11
* 参考MyImg.fll
* 主要功能:抓屏、裁剪、缩放、旋转、格式转换、生成到变量、复制到剪贴板
* 作者:木瓜

*--前提:VFP7.0以上;Windows 2K及以上
*--定义:一般放到主程序或表单(集)的Load事件中
Public WM_CAP_DRIVER_DISCONNECT
Public hwndc,WM_CAP_SAVEDIB,WM_CAP_FILE_SET_CAPTURE_FILEA,WM_CAP_SEQUENCE,WM_CAP_STOP
Declare Integer capCreateCaptureWindowA In "AVICAP32.DLL" String lpszWindowName ,Integer dwStyle ,;
    Integer x, Integer Y, Integer nWidth ,Integer nHeight,Integer ParentWin,Integer nId
Declare Integer SendMessage In "user32" Integer HWnd, Integer wmsg,Integer wpar1, Integer wpar2
Declare Integer SendMessage In "user32" As SendMessageA Integer HWnd, Integer wmsg,Integer wpar1, String wpar2

*--显示:可以放到按钮或表单(集)的Init事件中
WM_USER = 1024
WM_CAP_START = WM_USER
WM_CAP_STOP = WM_CAP_START + 68
WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10
WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11
WM_CAP_SAVEDIB = WM_CAP_START + 25
WM_CAP_GRAB_FRAME = WM_CAP_START + 60
WM_CAP_SEQUENCE = WM_CAP_START + 62
WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20
WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+ 63
WM_CAP_SET_OVERLAY =WM_CAP_START+ 51
WM_CAP_SET_PREVIEW =WM_CAP_START+ 50
WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6
WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2
WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3
WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5
WM_CAP_SET_SCALE=WM_CAP_START+ 53
WM_CAP_SET_PREVIEWRATE=WM_CAP_START+ 52
*第3、4个参数是定义显示位置,第5、6个参数是定义显示大小。
hWndC = capCreateCaptureWindowA('My Own Capture Window',1342177280,0,0,320,240,Thisform.HWnd ,0)
If hWndC <> 0
    SendMessage(hWndC, WM_CAP_SET_CALLBACK_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)
    SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0)
    SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0)
    * THISFORM.ACTIVATE
Endif

*--关闭显示:
SendMessage(hWndC,WM_CAP_DRIVER_DISCONNECT, 0, 0)
hWndC=0

*--保存图像:
*--无法控制生成的文件尺寸,因为是由摄像头本身默认的,不过可用Image控件显示时进行等比缩小的。
ss=Getfile("bmp;Jpg")
If !Empty(ss)
    SendMessageA(hWndC,WM_CAP_SAVEDIB,0,SS)
Endif

*--录像:
ss = Getfile("avi")
If !Empty(ss)
    SendMessageA(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0,ss)
    SendMessageA(hWndC, WM_CAP_SEQUENCE, 0, 0)
    This.Enabled=.F.
    Thisform.MousePointer= 0
    Thisform.停止录像按钮.Enabled=.T.
Endif

*--停止录像:
SendMessage(hWndC, WM_CAP_STOP, 0, 0)
Thisform.开始录像按钮.Enabled=.T.
This.Enabled=.F.
#6
aqyejun2022-05-17 16:11
MyImg.fll下载地址:https://down.bccn.net/11621.html
#7
wxyh012022-05-18 08:27
回复 3楼 foxfans
大神,可以把你反编的东西分享给我吗,我早就联系过作者,一直都没有回应,就觉得这个挺适合我现在阶段学习的,或者介绍一款工具啥的,现在觉得学习真不容易,问水平高的吧,人家可能不搭理你,再不就是不会的,没有研究这块的,网上的东西有的看不懂,给你发私信也不回。太难了,所以能分享一下就分享一下吧,谢谢了,
#8
wxyh012022-05-19 19:25
回复 5楼 aqyejun
谢谢,
#9
gs25367856782022-05-20 15:07
各位群友,看得出,楼主是诚心诚意请教,群友中有能力的,还请出来帮助楼主,谢谢。
#10
sych2022-05-20 16:05
5楼的代码不是很好吗?动动小手
#11
wxyh012022-05-24 10:03
回复 10楼 sych
我觉得上边那个更适合我用,可以调节
#12
wxyh012022-05-24 10:04
回复 9楼 gs2536785678
是真的想学习一下, 也想用用那个软件,
#13
cssnet2022-05-24 11:52
以下是引用wxyh01在2022-5-24 10:04:30的发言:
是真的想学习一下, 也想用用那个软件,


说个笑话,别介意哈。
说:
我看中了你裤兜里的钱包!好漂亮,鼓鼓囊囊的,一看就是真皮的,货真价实的,真金白银的!——特喜欢!真的特喜欢!我自己没办法掏到你的钱包,现在,恳请走过路过的大侠,有谁能帮助我得到你的钱包?我是真的想学习一下,也想用用你那个钱包。我真的没别的意思,就是这么一个意思,这么一个小小的请求。真心实意的。恳请大佬们成全!万分感谢!!无限感激!!!

然后,若走过路过的大侠,古道热肠,无私地帮助了我。试问——你情何以堪?没错,我问的就是你,若你恰好是那一位苦主的话,亲。
#14
easyppt2022-05-24 22:43
老车群里有完整的例子

AVCap.ocx 调用很简单




[此贴子已经被作者于2022-5-24 22:59编辑过]

#15
easyppt2022-05-24 22:59
回复 5楼 aqyejun
我运行你的代码,黑屏是什么原因
只有本站会员才能查看附件,请 登录
1