您当前的位置:delphi教程 > Delphi图形处理 > 原创:把整个网页保存成JPG图片(针对单框架网页)。

原创:把整个网页保存成JPG图片(针对单框架网页)。

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      Doc:   IHTMLDocument2;  
      ViewObject:   IViewObject;  
      sourceDrawRect:   TRect;  
      a,   getjpg:   TBitMap;  
      i,   m:   integer;  
      pdest,   psour:   hbitmap;  
      jpg:   tjpegimage;  
  begin  
      Doc   :=   WebBrowser.Document   as   IHTMLDocument2;  
      if   Webbrowser.Document   <>   nil   then  
      try  
          webbrowser.Document.QueryInterface(IViewObject,   ViewObject);  
          if   ViewObject   <>   nil   then  
          try  
              Doc.Get_ParentWindow.Scroll(0,   0);   //跳到网页头  
              getjpg   :=   TBitMap.Create();  
              getjpg.PixelFormat   :=   pf24bit;  
              getjpg.Height   :=   doc.Body.getAttribute('scrollHeight',   0);  
              getjpg.Width   :=   doc.Body.getAttribute('scrollwidth',   0);  
              pdest   :=   getjpg.Canvas.Handle;  
              m   :=   Trunc(doc.Body.getAttribute('ScrollHeight',   0)   /   (doc.Body.getAttribute('offsetHeight',   0)   -   20));  
              i   :=   Trunc(doc.Body.getAttribute('Scrollwidth',   0)   /   (doc.Body.getAttribute('offsetwidth',   0)   -   20));  
              for   i   :=   0   to   i   do  
              begin  
                  for   m   :=   0   to   m   +   1   do  
                  begin  
                      a   :=   TBitMap.Create();  
                      a.Height   :=   doc.Body.getAttribute('offsetHeight',   0);  
                      a.Width   :=   doc.Body.getAttribute('offsetwidth',   0);  
                      psour   :=   a.Canvas.handle;  
                      sourceDrawRect   :=   Rect(0,   0,   a.Width,   a.Height);  
                      ViewObject.Draw(DVASPECT_CONTENT,   1,   nil,   nil,   Self.Handle,   a.Canvas.Handle,   @sourceDrawRect,   nil,   nil,   0);  
                      bitblt(pdest,   doc.Body.getAttribute('scrollLeft',   0),   doc.Body.getAttribute('Scrolltop',   0),   a.Width,   a.Height,   psour,   2,   2,   srccopy);  
                      Doc.Get_ParentWindow.Scroll(doc.Body.getAttribute('scrollLeft',   0),   doc.Body.getAttribute('offsetHeight',   0)   +   doc.Body.getAttribute('Scrolltop',   0)   -   GetSystemMetrics(SM_CXVSCROLL)   -   24);  
                      a.Free;  
                  end;  
                  Doc.Get_ParentWindow.Scroll(doc.Body.getAttribute('offsetwidth',   0)   +   doc.Body.getAttribute('scrollLeft',   0)   -   GetSystemMetrics(SM_CXVSCROLL)   -   24,   0);  
              end;  
              jpg   :=   tjpegimage.Create;  
              jpg.Assign(getjpg);  
              getjpg.Free;  
              jpg.SaveToFile('c:\test.jpg');  
              jpg.Free;  
          finally  
              ViewObject._Release;  
          end;  
      except  
      end;  
  end;  
   
    Collector能够把您收集的资料、图片等都存放在一起,统一管理的工具。全部文件使用系统图标,支持大容量数据库,支持拖拉操作。导入速度一流,比其它同类的软件都快很多(可以在网上找一个同类软件导入过万条记录比较)。上网浏览网页时允许通过定制IE的右键菜单来方便收集网页和图片,本软件特色是可以直接保存成MHT文件。附带一个例子数据库,里面有使用方法。免费软件。  
          软件讨论请加入QQ群2523198,下载地址   http://nj.onlinedown.net/soft/11484.htm  
  。  
   
          1.6版本  
                添加浏览网页时把网页抓图保存成JPG文件功能(针对单框架网页);  
                添加设定数据库密码功能;  
                添加热键抓图功能(ALT+A);  
                添加热键最小化窗体或显示功能(ALT+Z);  
                修正把大网页保存成MHT文件出错的问题;  
                 
          1.5版本  
                添加浏览网页时放大网页功能;    
                修正由于输入法引起的一个错误;  
                优化收集网页代码,改为直接使用内存流,加快导入速度。  
   
          1.4版本    
                重写使用IE右键收集网页的代码,能很好的收集网页(可以和其它软件对比看看结果),大大加强了IE收集功能,  
                添加把网页保存成文本功能,  
                添加支持RTF文件,  
                添加备份数据功能,  
                大幅度提高了打开数据库的速度,  
                修正了一次性导进超过5万条记录出错的BUG,  
               
                注意:这个版本IE收集功能改变太大,如果使用了之前的版本  
                第一,删除Collector.exe根目录下面的*.htm文件,替换使用新版本的Collector.exe文件。  
                第二,手工删除IE右键带☆号的菜单(使用其它软件),运行本程序再重新创建IE右键菜单。


查看回复
关于我们 | 网站地图 | 广告刊登 | 友情链接
Copyright ©2008 - 2010  Delphi2007.net  ,All Rights Reserved  粤ICP备09038647号
业务联系:allceoad#gmail.com QQ:20008835 最佳分辨率 1024×768