Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Webcan no delphi 2007


danielrgoes

Pergunta

24 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...