Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Webcan no delphi 2007


danielrgoes

Question

24 answers to this question

Recommended Posts

  • 0
Estou precisando fazer um programa que firme com a webcan e capture a imagem (frame) quando apertar um botao

Na internet achei varios exemplos mais são componentes que não funcionam no D2007 só no D7

Voce chegou a testar este: Getting a snapshot from a webcam with Delphi ?

O exemplo está em uma pergunta em um forum, referente ao fato de o cara não usar uma câmera real (sim uma simulada), mas o código deve funcionar.

Eu já o utilizei há algum tempo com o D7 e pelo que consta na 2ª resposta que deram a ele, o programa funciona no Win7 com Delphi 2010, fazendo apenas alguns ajustes (colocados lá) - acredito que você seja capaz de entendê-lo e adaptá-lo. A vantagem seria o fato de ele não utilizar componentes.

Observe que estão todos os códigos fonte em sequência. Voce deve separá-los e adaptar o código fonte do seu form de acordo com o que ele usou no dele (WebCamMainForm).

Link to comment
Share on other sites

  • 0

danielrgoes, isso vai ficar difícil de eu responder - eu não tenho mais o Delphi instalado para poder testar por aqui.

Mas, voce já experimentou fazer a alteração no arquivo WebCamMainForm.pas que um cara sugeriu lá:

// introducing the RGB array and a buffer
  TVideoArray = array[1..PICHEIGHT] of array[1..PICWIDTH] of TRGBTriple;
  PVideoArray = ^TVideoArray;

  TForm1 = class(TForm)
[...]
  FBuf24_1: TVideoArray;
[...]

function FrameCallbackFunction(AHandle: hWnd; VIDEOHDR: TVideoHDRPtr): bool; stdcall;
var
  I: integer;
begin
  result:= true;

  with form1 do begin
  try
    if ConvertCodecToRGB(FCodec, VideoHDR^.lpData, @FBuf2, PICWIDTH, PICHEIGHT) then
    begin
      for I:= 1 to PICHEIGHT do FBuf1[I]:= FBuf2[PICHEIGHT- (I- 1)];
      SetBitmapBits(FBitmap.Handle, PICWIDTH* PICHEIGHT* SizeOf(DWord), @FBuf1);
    end
    else
    begin  // assume RGB
      for I:= 1 to PICHEIGHT do
        FBuf24_1[I] := PVideoArray(VideoHDR^.lpData)^[PICHEIGHT-I+1];
      SetBitmapBits(FBitmap.Handle, PICWIDTH* PICHEIGHT* SizeOf(RGBTriple), @FBuf24_1);
    end;
[...]
Ainda, a título de teste, se a tal alteração não mudar nada, voce poderia modificar a callback (FrameCallbackFunction) grando o bitmap original (lá ele é convertido para jpg):
...
    FBitmap.Canvas.Font.Color:= clRed;
    FBitmap.SaveToFile('c:\webcam.bmp');  // <<====  AQUI

    FJpeg.Assign(FBitmap);

    FJpeg.CompressionQuality:= 85;
    FJpeg.ProgressiveEncoding:= true;
    FJpeg.SaveToFile('c:\webcam.jpg');
    ...

Link to comment
Share on other sites

  • 0

deve ter vindo junto com a sua webcam, um cd de instalação ... certo ? então use o programa que vem junto com a webcam e veja se esta aparecendo corretamente a imagem

se estiver, então a imagem tambem aparecerá quando estiver usando o delphi, mas o aplicativo da camera deverá fechado, caso contrário aparecerá uma tela escura no delphi

abraço

Link to comment
Share on other sites

  • 0

Jhonas o Exemplo que você me mandou tem um fonte

ele não parece ter componente algum

Como ele utiliza a Webcam?

Jhonas ve se você me da uma mao

Baixei o DSPack porem não acho o D2007 mais vi que tem como funcionar o do D7

Porem não consigo instalar o componente porque no D2007 precisa do arquivo bpl e na pasta não tem

como faz pra instalar você sabe???

Link to comment
Share on other sites

  • 0

Para instalar pacotes de componentes (Packages, arquivos com a extensão *.DPK), execute o Delphi e feche o projeto, acesse o menu 'File' e clique na opção 'Open', abra o arquivo que contém os componentes. Dê Ok e depois é só clicar en 'install'. Pronto seu pacote de componentes será instalado.

primeiro para o DSPack_D7.dpk

depois para o DSPackDesign_D7.dpk

esses pacotes são para o delphi 7 mas funcionam do 2007 tambem

abraço

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...