如何将网络浏览器中的所有内容保存为图像

发布于 2024-12-05 09:34:14 字数 89 浏览 1 评论 0原文

我想将网络浏览器的内容保存为图像。这可能吗?

目的是创建页面的屏幕截图,然后将其作为图像在其他应用程序中查看。

任何人都可以帮忙吗?

I would like to save the content of a webbrowser as image. is that possible?

the purpose is to create a screenshot of a page and then viewed it to other application as images.

anyone can help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

盗心人 2024-12-12 09:34:14

这是一篇文章,它提供了一个示例:

uses ActiveX;

 procedure WebBrowserScreenShot(const wb: TWebBrowser; const fileName: TFileName) ;
 var
   viewObject : IViewObject;
   r : TRect;
   bitmap : TBitmap;
 begin
   if wb.Document <> nil then
   begin
     wb.Document.QueryInterface(IViewObject, viewObject) ;
     if Assigned(viewObject) then
     try
       bitmap := TBitmap.Create;
       try
         r := Rect(0, 0, wb.Width, wb.Height) ;

         bitmap.Height := wb.Height;
         bitmap.Width := wb.Width;

         viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ;

         with TJPEGImage.Create do
         try
           Assign(bitmap) ;
           SaveToFile(fileName) ;
         finally
           Free;
         end;
       finally
         bitmap.Free;
       end;
     finally
       viewObject._Release;
     end;
   end;
 end; 

并像这样使用:

procedure TForm1.FormCreate(Sender: TObject) ;
 begin
   WebBrowser1.Navigate('http://delphi.about.com') ;
 end;

 procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant) ;
 begin
   WebBrowserScreenShot(WebBrowser1,'c:\WebBrowserImage.jpg') ;
 end; 

Here's an article which provides an example:

uses ActiveX;

 procedure WebBrowserScreenShot(const wb: TWebBrowser; const fileName: TFileName) ;
 var
   viewObject : IViewObject;
   r : TRect;
   bitmap : TBitmap;
 begin
   if wb.Document <> nil then
   begin
     wb.Document.QueryInterface(IViewObject, viewObject) ;
     if Assigned(viewObject) then
     try
       bitmap := TBitmap.Create;
       try
         r := Rect(0, 0, wb.Width, wb.Height) ;

         bitmap.Height := wb.Height;
         bitmap.Width := wb.Width;

         viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ;

         with TJPEGImage.Create do
         try
           Assign(bitmap) ;
           SaveToFile(fileName) ;
         finally
           Free;
         end;
       finally
         bitmap.Free;
       end;
     finally
       viewObject._Release;
     end;
   end;
 end; 

and use like this:

procedure TForm1.FormCreate(Sender: TObject) ;
 begin
   WebBrowser1.Navigate('http://delphi.about.com') ;
 end;

 procedure TForm1.WebBrowser1NavigateComplete2(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant) ;
 begin
   WebBrowserScreenShot(WebBrowser1,'c:\WebBrowserImage.jpg') ;
 end; 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文