文章探索:   分类:    关键字:  
  + 栏目导航
  + 相关文章
WebBrower控件接口表
把整个网页保存成JPG图片(针对单框架..


技术教程 -> delphi教程 ->  
把整个网页保存成JPG图片(针对单框架网页)
来源:转载   人气:438   录入时间:2007-11-8
    
   把网页抓图保存成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;




Copyright(C)2007-2024 广州市佳沛数码科技有限公司 版权所有
公司地址: 广州市荔湾区东漖北路560号511室
电话:020-81803473 传真:020-81544987