代码
Code
1using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Data;
5using System.Windows.Forms;
6using System.Drawing;
7
8namespace EcsinoBrowser.Common
9{
10 /**//// <summary>
11 /// WebSnap :网页抓图对象
12 /// </summary>
13 public class WebSnap
14 {
15 public WebSnap()
16 {
17 //
18 // TODO: 在此处添加构造函数逻辑 //
19 }
20
21 /**//// <summary>
22 /// 开始一个抓图并返回图象
23 /// </summary>
24 /// <param name="Url">要抓取的网页地址</param>
25 /// <returns></returns>
26 public Bitmap StartSnap(string Url)
27 {
28 WebBrowser myWB = this.GetPage(Url);
29 Bitmap returnValue = this.SnapWeb(myWB);
30 myWB.Dispose();
31 return returnValue;
32 }
33
34 private WebBrowser GetPage(string Url)
35 {
36 WebBrowser myWB = new WebBrowser();
37 myWB.ScrollBarsEnabled = false;
38 myWB.Navigate(Url);
39 while (myWB.ReadyState != WebBrowserReadyState.Complete)
40 {
41 System.Windows.Forms.Application.DoEvents();
42 }
43 return myWB;
44 }
45
46 private Bitmap SnapWeb(WebBrowser wb)
47 {
48 HtmlDocument hd = wb.Document;
49 int height = Convert.ToInt32(hd.Body.GetAttribute("scrollHeight")) + 10;
50 int width = Convert.ToInt32(hd.Body.GetAttribute("scrollWidth")) + 10;
51 wb.Height = height;
52 wb.Width = width;
53 Bitmap bmp = new Bitmap(width, height);
54 Rectangle rec = new Rectangle();
55 rec.Width = width;
56 rec.Height = height;
57 wb.DrawToBitmap(bmp, rec);
58 return bmp;
59 }
60 }
61}
62
1using System;
2using System.Collections.Generic;
3using System.Text;
4using System.Data;
5using System.Windows.Forms;
6using System.Drawing;
7
8namespace EcsinoBrowser.Common
9{
10 /**//// <summary>
11 /// WebSnap :网页抓图对象
12 /// </summary>
13 public class WebSnap
14 {
15 public WebSnap()
16 {
17 //
18 // TODO: 在此处添加构造函数逻辑 //
19 }
20
21 /**//// <summary>
22 /// 开始一个抓图并返回图象
23 /// </summary>
24 /// <param name="Url">要抓取的网页地址</param>
25 /// <returns></returns>
26 public Bitmap StartSnap(string Url)
27 {
28 WebBrowser myWB = this.GetPage(Url);
29 Bitmap returnValue = this.SnapWeb(myWB);
30 myWB.Dispose();
31 return returnValue;
32 }
33
34 private WebBrowser GetPage(string Url)
35 {
36 WebBrowser myWB = new WebBrowser();
37 myWB.ScrollBarsEnabled = false;
38 myWB.Navigate(Url);
39 while (myWB.ReadyState != WebBrowserReadyState.Complete)
40 {
41 System.Windows.Forms.Application.DoEvents();
42 }
43 return myWB;
44 }
45
46 private Bitmap SnapWeb(WebBrowser wb)
47 {
48 HtmlDocument hd = wb.Document;
49 int height = Convert.ToInt32(hd.Body.GetAttribute("scrollHeight")) + 10;
50 int width = Convert.ToInt32(hd.Body.GetAttribute("scrollWidth")) + 10;
51 wb.Height = height;
52 wb.Width = width;
53 Bitmap bmp = new Bitmap(width, height);
54 Rectangle rec = new Rectangle();
55 rec.Width = width;
56 rec.Height = height;
57 wb.DrawToBitmap(bmp, rec);
58 return bmp;
59 }
60 }
61}
62
代码使用
Code
1Common.WebSnap websnap = new EcsinoBrowser.Common.WebSnap();
2 Bitmap bmp = websnap.StartSnap(webBrowser1.Url.ToString());
3 bmp.Save(Application.StartupPath + @"\crl.jpg");
4 bmp.Dispose();
1Common.WebSnap websnap = new EcsinoBrowser.Common.WebSnap();
2 Bitmap bmp = websnap.StartSnap(webBrowser1.Url.ToString());
3 bmp.Save(Application.StartupPath + @"\crl.jpg");
4 bmp.Dispose();