CSDN问答:Delphi中如何保存Webbrowser中的页面到图片


 

 
 

procedure GenerateJPEGfromBrowser(browser: iWebBrowser2;
                                  jpegFQFilename: 
string ; srcHeight:
                                  integer; srcWidth: integer;
                                  tarHeight: integer; tarWidth: integer);
var
  sourceDrawRect: TRect;
  targetDrawRect: TRect;
  sourceBitmap  : TBitmap;
  targetBitmap  : TBitmap;
  aJPG          : TJPEGImage;
  aViewObject   : IViewObject;
begin 
{ GenerateJPEGfromBrowser }
  sourceBitmap :
=  TBitmap.Create;
  targetBitmap :
=  TBitmap.Create;
  aJPG :
=  TJPEGImage.Create;
  
try
    
try
      sourceDrawRect :
=  Rect( 0 0 , srcWidth, srcHeight);
      sourceBitmap.Width :
=  srcWidth;
      sourceBitmap.Height :
=  srcHeight;

      aViewObject :
=  browser  as  IViewObject;

      
if  aViewObject = nil then
        Exit;

      OleCheck(aViewObject.Draw(DVASPECT_CONTENT, 
1 , nil, nil,
                               Form1.Handle,
                               sourceBitmap.Canvas.Handle,
                               @sourceDrawRect, nil, nil, 
0 ));

      
//  Resize the src bitmap to the target bitmap       //  Need to make thumbnails instead of full size?       //  set the target size here..       targetDrawRect := Rect(0, 0, tarWidth, tarHeight);
      targetBitmap.Height : =  tarHeight;
      targetBitmap.Width :
=  tarWidth;
      targetBitmap.Canvas.StretchDraw(targetDrawRect, sourceBitmap);

      
//  Create a JPEG from the Bitmap and save it      aJPG.Assign(targetBitmap);

      aJPG.SaveToFile(jpegFQFilename)
    
finally
      aJPG.Free;
      sourceBitmap.Free;
      targetBitmap.Free
    end; 
try }

  except
    
//  error handler code  end; { try }
end;  { GenerateJPEGfromBrowser }


procedure TForm1.Button2Click(Sender: TObject);
var
  IDoc1: IHTMLDocument2;
  Web  : iWebBrowser2;
  tmpX,
  tmpY : integer;
begin 
{ TForm1.Button2Click }
  with WebBrowser1 
do  
  begin
    Document.QueryInterface(IHTMLDocument2, IDoc1); 
    Web :
=  ControlInterface; 
    tmpX :
=  Height; 
    tmpY :
=  Width; 
    Height :
=  OleObject.Document.ParentWindow.Screen.Height; 
    Width :
=  OleObject.Document.ParentWindow.Screen.Width; 
    GenerateJPEGfromBrowser(Web, 
' . est.jpg ' ,
                            Height, Width,
                            Height, Width);
    Height :
=  tmpX;
    Width :
=  tmpY;

    Image1.Picture.LoadFromFile(
' . est.jpg ' )
  end; 
{ with WebBrowser1 }
end; 
{ TForm1.Button2Click }  

Source code :HTTPtoJPEG.zip (3 kB)
原文连接:
http://www.delphifaq.com/fq/q2231.shtml
http://www.applevb.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值