哪位高手知道:delphi中如何用摄像头按钮拍照? ( 积分: 100 )

  • 主题发起人 主题发起人 ganzqgy
  • 开始时间 开始时间
找了好久,只找到“Java中利用JMF编写摄像头拍照程序”,但在PhotoStudio2000中获取时,可以直接用摄像头上的按钮进行拍照,我想在delphi程序中也实现,请高人指点,谢谢。
 
目前只做到一手拿摄像头,一手按回车拍照,有点别钮
 
这个要用摄像头提供的api来做吧

因为有些摄像头不具备拍照按钮
 
PhotoStudio2000中基本上有按钮的摄像头都能用按钮拍,它好象不需要特定的api
 
API调用摄相头的提供的功能对话框.
 
请参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=116436
 
请gotiger说细一点,是哪个api
 
参考MS提供的VFW(Video for windows)里的函数可以实现拍照功能.他是专门做视频开发是的一个SDK.
 
我现在只想作到通过用摄像头上的拍照按键拍照,找了好久没找到
 
很容易的啊 不过一般也会根据硬件提供的DLL 或者支持的函数

var
jpeg: TJPEGImage;
bmp: TBitmap;
begin
//保存图片
if hWndC <> 0 then begin
SendMessage(hWndC, WM_CAP_SAVEDIB,0,longint(pchar(strfilename0)));
bmp:= TBitmap.Create;
try
bmp.LoadFromFile(strfilename0 );
jpeg := TJPEGImage.Create;
try
jpeg.Assign( bmp );
jpeg.compress;
jpeg.SaveTofile( strfilename+'test1.jpg');
strfilename1:=strfilename+'test1.jpg';
// jpeg.LoadFromFile(strfilename1);
// jpeg.SaveToStream(MyStm);
// MyStm.Position:=0;
finally
// MyStm.Free;
jpeg.free;
end; //try
finally
bmp.free;
end;//try
pct1.Picture.LoadFromFile(strfilename1);
end;
end;
 
下面是屏幕捕做 :
hWndC := capCreateCaptureWindowA('拍摄窗口',WS_CHILD or WS_VISIBLE ,Panel1.Left,Panel1.Top,Panel1.Width,Panel1.Height,frmVideo.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);
 
帮你顶一个,接个分
 
单位没有摄像头,中午回家试,分都会有的
 
还是不行,请各位帮忙弄一下,这个功能还是很有用的
 
这个问题,关注的人太少了
 
最近找到的结果:OopsTwain控件可以作到,但一次只能照一张,下一张又要重新启动摄像头,不太方便。
 
后退
顶部