mysql5资源共享

 找回密码
 立即注册
查看: 125|回复: 10

[PowerBuilder] 【API调用】pb调用高清摄像头黑屏

[复制链接]

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2019-7-4 15:45:56 | 显示全部楼层 |阅读模式
如题。在程序中用pb调用摄像头拍照并保存到数据库,原摄像头是成功的。但换了高清摄像头后,摄像头界面直接黑屏。代码如下:
通过capCreateCaptureWindowA打开摄像头。

stringlpszName
ulongl1
l1=handle(p_1)
lpszName='攝像頭界面...'
lhand=capCreateCaptureWindowA(lpszName,262144+12582912+1073741824+268435456,-5,-30,320,240,l1,0)
iflhand0then
        send(lhand,WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,0)
        send(lhand,WM_CAP_SET_CALLBACK_ERROR,0,0)
        send(lhand,WM_CAP_SET_CALLBACK_STATUSA,0,0)
        send(lhand,WM_CAP_DRIVER_CONNECT,0,0)
        send(lhand,WM_CAP_SET_SCALE,1,0)
        send(lhand,WM_CAP_SET_PREVIEWRATE,66,0)
        send(lhand,WM_CAP_SET_OVERLAY,1,0)
        send(lhand,WM_CAP_SET_PREVIEW,1,0)
endif

请教该如何解决此问题?谢谢
回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-5 13:27:37 | 显示全部楼层
lhand=capCreateCaptureWindowA(lpszName,262144+12582912+1073741824+268435456,UnitsToPixels(0,XUnitsToPixels!),UnitsToPixels(0,YUnitsToPixels!),UnitsToPixels(parent.width-25,XUnitsToPixels!),UnitsToPixels(1890,YUnitsToPixels!),l1,0)
回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-5 13:29:56 | 显示全部楼层
这个是要用到getbitmap.dll文件的,是不是文件版本不一样的
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2019-7-6 11:13:21 | 显示全部楼层
回复1楼,试过了不行。我的代码如下:
stringlpszName
ulongl1
l1=handle(p_1)
lpszName='攝像頭界面...'
lhand=capCreateCaptureWindowA(lpszName,262144+12582912+1073741824+268435456,-5,-30,320,240,l1,0)
iflhand0then
        send(lhand,WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,0)
        send(lhand,WM_CAP_SET_CALLBACK_ERROR,0,0)
        send(lhand,WM_CAP_SET_CALLBACK_STATUSA,0,0)
        send(lhand,WM_CAP_DRIVER_CONNECT,0,0)
        send(lhand,WM_CAP_SET_SCALE,1,0)
        send(lhand,WM_CAP_SET_PREVIEWRATE,66,0)
        send(lhand,WM_CAP_SET_OVERLAY,1,0)
        send(lhand,WM_CAP_SET_PREVIEW,1,0)
endif
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2019-7-6 11:15:34 | 显示全部楼层
回复2楼,我重新从网上下载了你说的dll文件,也没有成功,我的引用外部文件如下:

functionulonggetwindowdc(ulonghwnd)library"user32.dll"aliasfor"GetWindowDC"
functionulongcapcreatecapturewindowa(stringlpszwindowname,ulongdwstyle,longx,longy,longnwidth,longnheight,ulongparentwin,longnid)library"AVICAP32.DLL"aliasfor"capCreateCaptureWindowA;Ansi"
functionintegerout_num(integerirow)library"getbitmap.dll"aliasfor"out_num"
functionintegergetbitmapfromscreen(stringfilename)library"getbitmap.dll"aliasfor"GetBitmapFromScreen;Ansi"
functionintegergetbitmapfromwindow(stringlpfilename,ulonghwdc,integerx,integery,integerw,integerh,integerzoom)library"getbitmap.dll"aliasfor"GetBitmapFromWindow;Ansi"
functionintegergrabimage(ulonghwndc,stringpath)library"getbitmap.dll"aliasfor"GrabImage;Ansi"
functionintegerstopkinescope(ulonghwndc)library"getbitmap.dll"aliasfor"StopKinescope"
functionintegerkinescope(ulonghwndc,stringfilename)library"getbitmap.dll"aliasfor"Kinescope;Ansi"
回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-6 14:18:50 | 显示全部楼层
你最好安装了高清的驱动和对应的摄像软件,再搜索一下getbitmap.dll,试试用下他们自带的
回复

使用道具 举报

3

主题

179

帖子

385

积分

中级会员

Rank: 3Rank: 3

积分
385
发表于 2019-7-9 11:45:10 | 显示全部楼层
啥需求,我有个调用摄像头的ocx,OpenCV封装。
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2019-7-15 14:33:10 | 显示全部楼层
引用6楼xiaozhe_song的回复:啥需求,我有个调用摄像头的ocx,OpenCV封装。

需求是通过摄像头拍照身份证保存到本机上,并显示在ole控件中,确认无误后保存到sqlserver里。我现在可以做到保存到本机上了,但ole控件上只显示图片名。如图

719.jpg

719.jpg

回复

使用道具 举报

3

主题

179

帖子

385

积分

中级会员

Rank: 3Rank: 3

积分
385
发表于 2019-7-15 16:11:17 | 显示全部楼层
换个方法,浏览的时候,先从数据库拿出来,放临时位置,然后用图片控件加载。
回复

使用道具 举报

2

主题

55

帖子

128

积分

注册会员

Rank: 2

积分
128
发表于 2019-7-16 03:36:53 | 显示全部楼层
这个直接用图像控件就可以的了,不管是上传上去的BLOB数据还是文件直接setpicture方法就行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|mysql5.com Inc. ( 闽ICP备17002856号-1 )

GMT+8, 2019-10-23 01:32 , Processed in 0.055110 second(s), 21 queries .

Powered by MySQL5.com X3.4

© 2003-2019 MySQL5.com.

快速回复 返回顶部 返回列表