Delphi 控制摄像头[3]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 koy0755 的 blog

三个按钮的代码分别如下:

//
保存bmp
if hwndc <> 0 then begin
sendmessage(hwndc,wm_cap_savedib,0,longint(pchar(‘c:\\test.bmp‘)));
end;

//
开始录像
if hwndc <> 0 then
begin
sendmessage(hwndc,wm_cap_file_set_capture_filea,0, longint(pchar(‘c:\\test.avi‘)));
sendmessage(hwndc, wm_cap_sequence, 0, 0);
end;

//
停止录像
if hwndc <> 0 then begin
sendmessage(hwndc, wm_cap_stop, 0, 0);
end;

再运行看看吧。。可以保存几张图看看,也可以录成avi以后慢慢欣赏。

程序运行效果: [ 相关贴图 ]
http://yousoft.hi.com.cn/upload/forum/2004715161959.jpg

完整的程序代码如下:

unit unit1;

interface

uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs, stdctrls, extctrls;

type
tform1 = class(tform)
panel1: tpanel;
button1: tbutton;
button2: tbutton;
button3: tbutton;
button4: tbutton;
button5: tbutton;
procedure button1click(sender: tobject);
procedure button2click(sender: tobject);
procedure button3click(sender: tobject);
procedure button4click(sender: tobject);
procedure button5click(sender: tobject);
procedure formclose(sender: tobject; var action: tcloseaction);
private
hwndc : thandle;
public
{ public declarations }
end;

var
form1: tform1;


const wm_cap_start = wm_user;
const wm_cap_stop = wm_cap_start + 68;
const wm_cap_driver_connect = wm_cap_start + 10;
const wm_cap_driver_disconnect = wm_cap_start + 11;
const wm_cap_savedib = wm_cap_start + 25;
const wm_cap_grab_frame = wm_cap_start + 60;
const wm_cap_sequence = wm_cap_start + 62;
const wm_cap_file_set_capture_filea = wm_cap_start + 20;
const wm_cap_sequence_nofile =wm_cap_start+ 63
const wm_cap_set_overlay =wm_cap_start+ 51
const wm_cap_set_preview =wm_cap_start+ 50
const wm_cap_set_callback_videostream = wm_cap_start +6;
const wm_cap_set_callback_error=wm_cap_start +2;
const wm_cap_set_callback_statusa= wm_cap_start +3;
const wm_cap_set_callback_frame= wm_cap_start +5;
const wm_cap_set_scale=wm_cap_start+ 53
const wm_cap_set_previewrate=wm_cap_start+ 52

function capcreatecapturewindowa(lpszwindowname : pchar;
dwstyle : longint;x : integer;y : integer;nwidth : integer;
nheight : integer;parentwin : hwnd;nid : integer): hwnd;
stdcall external ‘avicap32.dll‘;


implementation

{$r *.dfm}

procedure tform1.button1click(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);

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
begin
sendmessage(hwndc, wm_cap_set_callback_videostream, 0, 0);
sendmessage(hwndc, wm_cap_set_callback_error, 0, 0);
sendmessage(hwndc, wm_cap_set_callback_statusa, 0, 0);

本文关键:Delphi 控制摄像头
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top