none
Como capturar imagem via webcam?

    Question

  • Pessoal...

    Alguém tem uma idéia de como posso capturar uma imagem via webcam e colocar no picurebox?

    Tenho cadastro de cliente e quero incluir uma foto da pessoa no registro.

     

    Monday, August 30, 2010 8:00 PM

Answers

All replies

  • Pessoal...

    Alguém tem uma idéia de como posso capturar uma imagem via webcam e colocar no picurebox?

    Tenho cadastro de cliente e quero incluir uma foto da pessoa no registro.

     

    Aqui tem um projecto: http://www.codeproject.com/KB/audio-video/WebcamUsingDirectShowNET.aspx

    Aqui tem umas Dicas: http://www.vbforums.com/showthread.php?p=2048466

    http://www.dreamincode.net/forums/topic/61783-capture-webcam/


    Just Be Humble Malange!
    Monday, August 30, 2010 8:09 PM
  • Caro Novato2010

    Aqui apresento uma solução minha, testada e funcionando prefeitamente 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:\fotos\imgwebcam.bmp');
                end;
              end;
            finally
              capDriverDisconnect(hWnd);
            end;
          end;
        end;
        with Image1 do begin
          Width:=440;
          Height:=330;
          Stretch:=true;
          Picture.LoadFromFile('d:\fotos\imgwebcam.bmp');
        end;
      finally
        bmp.Free;
        ClipBoard.Clear;
      end;
    end;

    Saturday, December 18, 2010 11:05 PM