Capturar tela no TWebBrowser.

12/12/2003

2

Estou desenvolvendo um aplicativo para capturar as imagens de uma câmera IP. Utilizei o componente TWebBrowser para fazer a comunicação, visto que a imagem é disponibilizada através de um applet java. Consigo assisitir a tudo numa boa. A minha dúvida é: existe algum método no TWebBrowser para capturar o conteúdo da janela como imagem? Seria algo como um snapshot somente do conteúdo de TWebBrowser.

Desde já agradeço,
Vinicius F.


Responder

Posts

12/12/2003

Deus

Eu criei este procedimento aqui, que salva o conteúdo do webbrowser em um arquivo bmp que você definir.

  procedure imgSalvaImagem(sArq: String);
  var
         ViewObject: IViewObject;
     sourceDrawRect: TRect;
          imgImagem: TImage;
  begin
    if webBrowser1.Document <> nil then
    try
      imgImagem := TImage.Create(Self);
      imgImagem.Width := WebBrowser1.Width;
      imgImagem.Height := WebBrowser1.Height;

      webBrowser1.Document.QueryInterface(IViewObject, ViewObject);
      if ViewObject <> nil then
      try
        sourceDrawRect := Rect(0, 0, imgImagem.Width, imgImagem.Height);
        ViewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Self.Handle,
        imgImagem.Canvas.Handle, @sourceDrawRect, nil, nil, 0);
      finally
        ViewObject._Release;
      end;
      imgImagem.Picture.Bitmap.SaveToFile(sArq);
    except
    end;
  end;


Agora, para utilizá-lo, é só fazer a chamada da seguinte forma:

imgSalvaImagem(´C:\teste.bmp´);


E o conteúdo do webBrowser1 será salvo dentro do arquivo [i:a8c84299c4]C:\teste.bmp[/i:a8c84299c4]. Espero que isso tenha resolvido o seu problema! :) Ah, você deve adicionar [i:a8c84299c4]ActiveX[/i:a8c84299c4] e [i:a8c84299c4]ExtCtrls[/i:a8c84299c4] à cláusula [i:a8c84299c4]Uses[/i:a8c84299c4] para a função funcionar. :)

Abraços, dEUS.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira