Wellington
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 18/12/2010 20:51 hs
Caro Huber Fabio,
Aqui apresento uma solução minha, testada e funcionando perfeitamente em Delphi 7 e Delphi 2009.
Espero que te atenda.
Wellington Gomes de Andrade - Eng.
{------------------------------------------------------------------------------ Procedure "cap_foto_webcam" Captura e salva em arquivo bitmap um só frame (foto) da webcam Capture and save only one frame (photo) to bitmap file Autor: Wellington Gomes de Andrade - Eng. Em: 18/12/2010 Empresa: Automata Tecnologia - www.automataa.com.br email: wellauto@hotmail.com -----------------------------------------------------------------------------} procedure TFCaptura.cap_foto_webcam; var hWnd: THandle; bmp: TBitmap; formatoBmp: word; ADado: THandle; APalette: HPALETTE; begin bmp:=TBitmap.Create;
try { Cria o formato bitmap para o clipboard } { Create bitmap format to clipboard } bmp.SaveToClipboardFormat(formatoBmp,ADado,APalette); ClipBoard.SetAsHandle(formatoBmp,ADado);
{ Limpa o objeto TImage } { Clear TImage object } Image1.Picture.Assign(nil); Image1.Refresh;
{ Registro do formato Bitmap } { Register bitmap format } Image1.Picture.RegisterClipboardFormat(CF_BITMAP,TBitmap);
{ Handle da criação da janela de captura} { Creation window Handle} hWnd:=capCreateCaptureWindow('ImagemWebCam', //Janela(window) de captura WS_CHILD, //Child (Form) 0,0, //Esq(Left), cima(top) 640,480, //Larg(width),Altu(height) FCaptura.Handle, //Form(parent) Handle 0); //ID janela (window) if hWnd <> 0 then begin { Se janela foi criada com sucesso, conectá-la } { If window created, connect to } if capDriverConnect(hWnd,0) then begin { Se conexão com janela foi efetuada } { If connected successfully } try if capGrabFrame(hWnd) then begin { Se capturou um frame } { If frame captured } if capEditCopy(hWnd) then begin { Se salvou o frame capturado para o clipboard } { If clipboard saved frame} bmp.LoadFromClipboardFormat(CF_BITMAP, ClipBoard.GetAsHandle(CF_BITMAP),0); bmp.SaveToFile('d:fotosimgwebcam.bmp'); end; end; finally capDriverDisconnect(hWnd); end; end; end; with Image1 do begin Width:=440; Height:=330; Stretch:=true; Picture.LoadFromFile('d:fotosimgwebcam.bmp'); end; finally bmp.Free; ClipBoard.Clear; end; end;
|
|
|