基本信息
源码名称:视频采集(摄像头录像)
源码大小:0.90M
文件格式:.zip
开发语言:Pascal
更新时间:2022-01-22
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
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;
function capCreateCaptureWindowA(lpszWindowName: PCHAR;
dwStyle: longint;
x: integer;
y: integer;
nWidth: integer;
nHeight: integer;
ParentWin: HWND;
nId: integer): HWND;
stdcall external 'AVICAP32.DLL';
procedure TForm1.FormCreate(Sender: TObject);
begin
CapturingAVI := false;
hWndC := 0;
SaveDialog1.Options :=
[ofHideReadOnly, ofNoChangeDir, ofPathMustExist]
end;
procedure TForm1.OpenVideoClick(Sender: TObject);
begin
hWndC := capCreateCaptureWindowA('My Own Capture Window',
WS_CHILD or WS_VISIBLE,
Panel1.Left,
Panel1.Top,
Panel1.Width,
Panel1.Height,
Form1.Handle,
0);
if hWndC <> 0 then
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
end;
procedure TForm1.CloseVideoClick(Sender: TObject);
begin
if hWndC <> 0 then begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
hWndC := 0;
end;
end;
procedure TForm1.SaveBMPClick(Sender: TObject);
begin
if hWndC <> 0 then begin
SaveDialog1.DefaultExt := 'bmp';
SaveDialog1.Filter := 'Bitmap files (*.bmp)|*.bmp';
if SaveDialog1.Execute then
SendMessage(hWndC,
WM_CAP_SAVEDIB,
0,
longint(pchar(SaveDialog1.FileName)));
end;
end;
procedure TForm1.StartAVIClick(Sender: TObject);
begin
if hWndC <> 0 then begin
SaveDialog1.DefaultExt := 'avi';
SaveDialog1.Filter := 'AVI files (*.avi)|*.avi';
if SaveDialog1.Execute then begin
CapturingAVI := true;
SendMessage(hWndC,
WM_CAP_FILE_SET_CAPTURE_FILEA,
0,
Longint(pchar(SaveDialog1.FileName)));
SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
end;
end;
end;
procedure TForm1.StopAVIClick(Sender: TObject);
begin
if hWndC <> 0 then begin
SendMessage(hWndC, WM_CAP_STOP, 0, 0);
CapturingAVI := false;
end;
end;
procedure TForm1.GrabFrameClick(Sender: TObject);
begin
if hWndC <> 0 then
SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0);
end;
end.
.
├── 视频采集
│ ├── AVICap.dcu
│ ├── AVICap.pas
│ ├── AVICapH.dcu
│ ├── AVICapH.pas
│ ├── D
│ ├── Project1.cfg
│ ├── Project1.dof
│ ├── Project1.dpr
│ ├── Project1.dproj
│ ├── Project1.dproj.local
│ ├── Project1.exe
│ ├── Project1.identcache
│ ├── Project1.res
│ ├── Project1.stat
│ ├── Project1_Icon.ico
│ ├── Unit1.dcu
│ ├── Unit1.ddp
│ ├── Unit1.dfm
│ └── Unit1.pas
└── 好例子网_视频采集.zip
1 directory, 20 files
视频采集
实现了程序获取摄像头并进行录像保存AVI
const
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;
function capCreateCaptureWindowA(lpszWindowName: PCHAR;
dwStyle: longint;
x: integer;
y: integer;
nWidth: integer;
nHeight: integer;
ParentWin: HWND;
nId: integer): HWND;
stdcall external 'AVICAP32.DLL';
procedure TForm1.FormCreate(Sender: TObject);
begin
CapturingAVI := false;
hWndC := 0;
SaveDialog1.Options :=
[ofHideReadOnly, ofNoChangeDir, ofPathMustExist]
end;
procedure TForm1.OpenVideoClick(Sender: TObject);
begin
hWndC := capCreateCaptureWindowA('My Own Capture Window',
WS_CHILD or WS_VISIBLE,
Panel1.Left,
Panel1.Top,
Panel1.Width,
Panel1.Height,
Form1.Handle,
0);
if hWndC <> 0 then
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
end;
procedure TForm1.CloseVideoClick(Sender: TObject);
begin
if hWndC <> 0 then begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
hWndC := 0;
end;
end;
procedure TForm1.SaveBMPClick(Sender: TObject);
begin
if hWndC <> 0 then begin
SaveDialog1.DefaultExt := 'bmp';
SaveDialog1.Filter := 'Bitmap files (*.bmp)|*.bmp';
if SaveDialog1.Execute then
SendMessage(hWndC,
WM_CAP_SAVEDIB,
0,
longint(pchar(SaveDialog1.FileName)));
end;
end;
procedure TForm1.StartAVIClick(Sender: TObject);
begin
if hWndC <> 0 then begin
SaveDialog1.DefaultExt := 'avi';
SaveDialog1.Filter := 'AVI files (*.avi)|*.avi';
if SaveDialog1.Execute then begin
CapturingAVI := true;
SendMessage(hWndC,
WM_CAP_FILE_SET_CAPTURE_FILEA,
0,
Longint(pchar(SaveDialog1.FileName)));
SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
end;
end;
end;
procedure TForm1.StopAVIClick(Sender: TObject);
begin
if hWndC <> 0 then begin
SendMessage(hWndC, WM_CAP_STOP, 0, 0);
CapturingAVI := false;
end;
end;
procedure TForm1.GrabFrameClick(Sender: TObject);
begin
if hWndC <> 0 then
SendMessage(hWndC, WM_CAP_GRAB_FRAME, 0, 0);
end;
end.
.
├── 视频采集
│ ├── AVICap.dcu
│ ├── AVICap.pas
│ ├── AVICapH.dcu
│ ├── AVICapH.pas
│ ├── D
│ ├── Project1.cfg
│ ├── Project1.dof
│ ├── Project1.dpr
│ ├── Project1.dproj
│ ├── Project1.dproj.local
│ ├── Project1.exe
│ ├── Project1.identcache
│ ├── Project1.res
│ ├── Project1.stat
│ ├── Project1_Icon.ico
│ ├── Unit1.dcu
│ ├── Unit1.ddp
│ ├── Unit1.dfm
│ └── Unit1.pas
└── 好例子网_视频采集.zip
1 directory, 20 files