Code: Detail

Delphi - (Portuguese)

Capturando imagem da webcam

Código de um formulário que captura a imagem de uma webcam

Last update: 11/12/2013
Delphi       
 
N/A
N/A
N/A
N/A
 

unit Unit1; 

interface 

uses 
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
Dialogs, StdCtrls, ExtCtrls; 

type 
TForm1 = class(TForm) 
Panel1: TPanel; 
ToolButton1: TButton; 
ToolButton4: TButton; 
ToolButton2: TButton; 
procedure ToolButton1Click(Sender: TObject); 
procedure ToolButton4Click(Sender: TObject); 
procedure ToolButton2Click(Sender: TObject); 
private 
{ Private declarations } 
public 
{ Public declarations } 
end; 

var 
Form1: TForm1; 
hWndC : THandle = 0; 

implementation 

{$R *.dfm} 
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'; 



   procedure TForm1.ToolButton1Click(Sender: TObject); 
      begin 
         if hWndC <> 0 then exit; 
         hWndC := capCreateCaptureWindowA('WebCam no Turbo Delphi',WS_CHILD or WS_VISIBLE ,Panel1.Left,Panel1.Top,320,240,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.ToolButton4Click(Sender: TObject); 
   begin 
      if hWndC <> 0 then 
      begin 
         SendMessage(hWndC,WM_CAP_SAVEDIB,0,longint(pchar('c:\teste.bmp'))); 
      end; 
   end; 

   procedure TForm1.ToolButton2Click(Sender: TObject); 
   begin 
      if hWndC <> 0 then 
      begin 
         SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0); 
         hWndC := 0; 
      end; 
   end; 
end. 

Source: http://www.activedelphi.com.br/forum/viewtopic.php?t=47655&postdays=0&postorder=asc&start=45&sid=c5d
 
Users who have marked this routine as a favorite
 
 
 
The site ti4fun is not responsible for the content on sites for which you have external links

Articles, routines, tips, forums, blogs or any other content posted on ti4fun site is not tested and not validated, so you should test and validate any information collected on the ti4fun site before applying it to final use environment, such as example, production. the TI4FUN site is not responsible for quality or for any damages, direct, indirect or consequential, from use of any content posted by the authors in the site.

All content published on the ti4fun site is the responsibility of the author and do not necessarily express the views of the site ti4fun and its employees.