videocap控件问题(200分)

  • 主题发起人 主题发起人 掮客
  • 开始时间 开始时间

掮客

Unregistered / Unconfirmed
GUEST, unregistred user!
videocap 2.3安装好后 怎么把视频上的当前帧的一部分给截取出来作为图像保存到数据库中?
谢谢
 
function FrameCallBack(hWnd: HWND; lpVHdr: LongInt): LongInt; stdcall;
var
DataPoint: ^byte; //结构指针指向形式
DibLen: Cardinal;
begin
//转换从回调函数中得到的指针
VideoStr := PVIDEOHDR(lpVHdr); //得到视频数据的地址指针
//得到返回的数据大小
DibLen := VideoStr^.dwBufferLength;
GetMem(DataPoint, DibLen);
//将帧数据COPY到一个内存中,注意DATAPOINT要先分配空间
CopyMemory(DataPoint, VideoStr^.lpData, Diblen);

操作DATAPOINT就可以存成图片了:)
//一些其他处理
FreeMem(DataPoint, DibLen);
result := S_OK;
end;
 
我只要这一帧的一部分,譬如上面一半。
 
思路:你可以将I帧 复制到 IMAGE 上,再用Canvas.CopyRect()方法,想复制那一块,就复制那一块呀。:)
 
看看以前我问的一个问题:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1808298
 

Similar threads

D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
769
DelphiTeacher的专栏
D
D
回复
0
查看
719
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部