请教如何将摄像头的图象能在程序的屏幕上显示呢? 请教如何将摄像头的图象能在程序的屏幕上显示呢? (delphi)急急 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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); SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0); SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0); SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0); SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0); SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0); end;end;procedure TForm1.Button2Click(Sender: TObject);begin if hWndC <> 0 then begin SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0); hWndC := 0; end;end;procedure TForm1.Button3Click(Sender: TObject);begin if hWndC <> 0 then begin SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar('e:\test.bmp'))); image1.Picture.LoadFromFile('e:\test.bmp'); end;end;procedure TForm1.Button4Click(Sender: TObject);begin if hWndC <> 0 then begin SendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0, Longint(pchar('e:\test.avi'))); SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0); end;end;procedure TForm1.Button5Click(Sender: TObject);begin if hWndC <> 0 then begin SendMessage(hWndC, WM_CAP_STOP, 0, 0); end;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin if hWndC <> 0 then begin SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0); end;end; 原来做过Axis和另一种型号的,如果能把摄像头放在局域网内通过web访问的话,就简单,它里面有自带的ocx插件,下载到本地,通过delphi注册就可以当控件用,研究一下它的属性就可以。相信用过Axis的就能明白我说的。 delphi 窗体停靠的问题! 今天的几道笔试题 关于FTP映射为本地驱动器问题 自己写的一个小工具,将SqlServer内的表数据导出为Sql脚本文件 关于远程终端~~~~~~~~~~~~~~~~ 如何得到GIF每一帧的透明色! Delphi 中怎样设置、取消 注释块?找到以前但是打不开,这个该死的CSDN!!! 给自己的程序一个记忆功能,怎么通过写注册表实现(可再加分!) 怎样解压后缀为:*.ace 的文件? 请问Delphi中如何将CheckBox加入TreeView中? 如何在win98下运行网络程序 错误信息:Timeout expired
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);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
end;end;procedure TForm1.Button2Click(Sender: TObject);
begin
if hWndC <> 0 then begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
hWndC := 0;
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
if hWndC <> 0 then begin
SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar('e:\test.bmp')));
image1.Picture.LoadFromFile('e:\test.bmp');
end;
end;procedure TForm1.Button4Click(Sender: TObject);
begin
if hWndC <> 0 then
begin
SendMessage(hWndC,WM_CAP_FILE_SET_CAPTURE_FILEA,0, Longint(pchar('e:\test.avi')));
SendMessage(hWndC, WM_CAP_SEQUENCE, 0, 0);
end;
end;procedure TForm1.Button5Click(Sender: TObject);
begin
if hWndC <> 0 then begin
SendMessage(hWndC, WM_CAP_STOP, 0, 0);
end;
end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if hWndC <> 0 then begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
end;
end;
相信用过Axis的就能明白我说的。