网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
利用VFW在Delphi中开发视频捕获程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
Parms.fMCIControl:=FALSE; 
CapParms.fYield:=TRUE; 
CapParms.vKeyAbort:=VK_ESCAPE; 
CapParms.fAbortLeftMouse:=FLASE; 
CapParms.fAbortRightMouse:=FALSE; 
//使设置生效 
CapCaptureSetSetup(ghCapWnd,LongInt(@CapParms),sizeof(TCAPTUREPARMS)); 
CapPreviewScale(ghCapWnd,1); 
CapPreviewRate(ghCapWnd,66); 
如果要捕获视频流,则要使用函数来指定不生成文件。否则将会自动生成AVI文件: 
CapCaptureSequenceNoFile(ghCapWnd); 
指定是否使用叠加模式,1为使用,否则为0; 
CapOverlay(ghCapWnd,1); 
CapPreview(ghCapWnd,1); 
End; 
在Name为“Closevideo”的Tbutton的Click事件中写入以下代码: 
procedure TForm1.ClosevideoClick(Sender:Tobject); 
begin 
capCaptureAbort(ghCapWnd); //停止捕获 
capDriveDisconnect(ghCapWnd); //将捕获窗同驱动器断开 
end; 
定义捕获帧回调函数: 
function FrameCallBack(hWnd:HWND;lpVHdr:LongInt):LongInt;stdcall; 
var 
DataPoint:^byte; 
DibLen,RectWidth,RectHeight:integer; 
begin 
VideoStr:=LPVIDEOHDR(lpVHdr); 
DibLen:=VideoStr^.dwBufferLength; 
GetMem(DataPoint,64000); 
//将帧数据COPY到一个内存中,注意:DATAPOINT要先分配空间 
CopyMemory(DataPoint,VideoStr^.lpData,Diblen); 
…… 
end; 

  4 结束语

  灵活地使用AVICap窗口类的回调函数可以满足各种需求,但要注意从视频卡中捕获的视频数据的格式和图像的长宽要参考视频卡的参数。另外,有些视频卡通过设置可支持多种格式和图像长宽,所以,在还原图像时,要注意参考所用的视频卡的参数。
  • 上一篇资讯: Delphi Pascal指针详解
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号