我用API的方式显示摄像头的图像,但是画面不是很流畅,画面图像和实际有0.5秒的延迟,有谁知道解决的方法呢?

liuxiang 2005-12-13 10:54:30
API的方法如下:
用 api 调用 摄像头 源码
//定义变量
uint lhand



//定义常数
long WM_USER=1024
long WM_CAP_START = WM_USER
long WM_CAP_STOP = WM_CAP_START + 68
long WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10
long WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11
long WM_CAP_SAVEDIB = WM_CAP_START + 25
long WM_CAP_GRAB_FRAME = WM_CAP_START + 60
long WM_CAP_SEQUENCE = WM_CAP_START + 62
long WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20
long WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+ 63
long WM_CAP_SET_OVERLAY =WM_CAP_START+ 51
long WM_CAP_SET_PREVIEW =WM_CAP_START+ 50
long WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6
long WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2
long WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3
long WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5
long WM_CAP_SET_SCALE=WM_CAP_START+ 53
long WM_CAP_SET_PREVIEWRATE=WM_CAP_START+ 52



//定义api
function ulong capCreateCaptureWindowA(string lpszWindowName,ulong dwStyle,long x ,long y ,long nWidth ,long nHeight ,ulong ParentWin ,long nId ) LIBRARY 'AVICAP32.DLL'



//初始化代码
string lpszName
ulong l1
l1=handle(w_main)



lpszName='摄像头界面...'
lhand=capCreateCaptureWindowA(lpszName,262144+12582912+1073741824 + 268435456 ,0,0,200,200,l1,0)
if lhand <> 0 then
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)
end if



//保存到文件
string s
s='c:\save.avi'
if lhand<>0 then
Send(lhand,WM_CAP_FILE_SET_CAPTURE_FILEA,0, s);
Send(lhand,WM_CAP_SEQUENCE, 0, 0) //开始捕捉
end if



//停止保存
send(lhand, WM_CAP_STOP, 0, 0)



//保存为图片
string s
s='c:\save.bmp'
if lhand <> 0 then
Send(lhand,WM_CAP_SAVEDIB,0,s);
end if
...全文
478 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ybkenan 2006-06-30
  • 打赏
  • 举报
回复
幫頂。順便學習﹗﹗﹕)
zylt 2006-06-09
  • 打赏
  • 举报
回复
可能和摄像头的质量有关,建议更换摄像头。
ruky9988 2006-06-04
  • 打赏
  • 举报
回复
慢也算正常 ^-^
lzheng2001 2006-05-05
  • 打赏
  • 举报
回复
查一下lhand的值是否正确! 及send返回的值是否正确,如果是-1证明,send失败
baitao79 2006-05-02
  • 打赏
  • 举报
回复
我为什么保存不了图片?请教!谢谢!
liuxiang 2005-12-13
  • 打赏
  • 举报
回复
ding

680

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder API 调用
社区管理员
  • API 调用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧