Olá galera, nesta Quick Tips, irei mostra como usar o componente TCamera, no Delphi 2010, devido a algumas mudanças na estrutura de Strings do Delphi 2010 para o Delphi 7, vamos ter que fazer algumas modificações no código para poder concluir o exemplo. Então vamos lá.

Vamos criar o exemplo para tal feito.

  • 2 TLabels(LblOriginal, LblCapturada)
  • 1 TPanel( PnlCabecalho )
  • 2 TBitBtn(BtnFechar, BtnCapturar)
  • 1 TImage (ImgCapturada)
  • 1 TCamera (camCamera)

Seu exemplo deverá ficar da seguinte forma :

img

Vamos criar 3 procedures na seção private do nosso form:


private
{ Private declarations }
procedure AtivarWebCam;
procedure CarregarTImage(Filename:String);
procedure CapturarImagem;
public
{ Public declarations


{Vamos implementar a procedure AtivarWebCam, esta serve para iniciar a captura }
procedure TFrmCapturaWebCam.AtivarWebCam;
begin
 try
     camCamera.Actif := True;
  except
    MessageDlg('Ocorreu um erro ao tentar ativar a Webcam.' + #13 +
    'Certifique-se de que a câmera esteja conectada e corretamente configurada.'
    , mtError, [mbOk], 0);
   end;
end;

{Vamos implementar agora clique do BtnCapturar } 

procedure TFrmCapturaWebCam.BtnCapturarClick(Sender: TObject);
begin
  CapturarImagem;
  BtnFechar.SetFocus;
end;


{Vamos implementar agora a procedure CapturarImagem capturar a imagem do componente camCamera. 
Veja que estamos salvando como F.bmp o nome do arquivo 
Segundo ponto estamos mudando o nome da imagem F, caso você abra o código no ponto da linha CaptureImageDisque, você poderá ver que é criado um arquivo “F”, apenas
Após executar esta linha  mudamos seu nome para salvar com o nome F.BMP, e logo em seguida nós carregamos a imagem no TImage, usando a função criada
}

procedure TFrmCapturaWebCam.CapturarImagem;
begin
 if FileExists('F.bmp') then
    DeleteFile('F.bmp');
 camCamera.FichierImage := 'F';
 camCamera.CaptureImageDisque;
 RenameFile('F', 'F.bmp');
 CarregarTImage('F.bmp')
end;

{Vamos implementar agora a procedure CarregarTImage para exibir a imagem no nosso TImage }
procedure TFrmCapturaWebCam.CarregarTImage(Filename: String);
begin
  ImgCapturada.Picture.LoadFromFile(FileName);
end;

{Vamos implementar agora o evento destroy do nosso form TFrmCapturaWebCam }
procedure TFrmCapturaWebCam.FormDestroy(Sender: TObject);
begin
  camCamera.Actif := False;
end;

{Vamos implementar agora o clique do BtnFechar }
procedure TFrmCapturaWebCam.BtnFecharClick(Sender: TObject);
begin
Close;
FrmCapturaWebCam.ModalResult := mrOk;
end;

Fico por aqui ate à próxima Quick Tips. Baixe o exemplo completo neste post.