通过 WebBrowser 获取网页截图
来源:互联网 发布:农村淘宝要投资多少钱 编辑:程序博客网 时间:2024/05/16 19:01
本文介绍通过WinForm中的控件WebBroswer获取网页截图。这个方法可以截取到大于屏幕区域的网页截图,但是对于网页上的Flash或者一些控件无法获取到图像。因为是WinForm的控件,所以未在WPF中测试。
在界面上加入一个文本框和一个按钮,文本框用于输入地址。在按钮按下的事件处理函数中初始化一个WebBrowser并打开网页,但它不在界面上显示。
1 /// <summary>
2 /// 按钮按下事件处理函数
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 private void SaveSnapshot_Click(object sender, EventArgs e)
7 {
8 WebBrowser webBrowser = new WebBrowser(); // 创建一个WebBrowser
9 webBrowser.ScrollBarsEnabled = false; // 隐藏滚动条
10 webBrowser.Navigate(address.Text); // 打开网页
11 webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); // 增加网页加载完成事件处理函数
12 }
2 /// 按钮按下事件处理函数
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 private void SaveSnapshot_Click(object sender, EventArgs e)
7 {
8 WebBrowser webBrowser = new WebBrowser(); // 创建一个WebBrowser
9 webBrowser.ScrollBarsEnabled = false; // 隐藏滚动条
10 webBrowser.Navigate(address.Text); // 打开网页
11 webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); // 增加网页加载完成事件处理函数
12 }
在网页加载完成的处理函数中获取截图,调节图片大小并保存。
1 /// <summary>
2 /// 网页加载完成事件处理函数
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
7 {
8 WebBrowser webBrowser = (WebBrowser)sender;
9
10 // 网页加载完毕才保存
11 if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
12 {
13 // 获取网页高度和宽度,也可以自己设置
14 int height = webBrowser.Document.Body.ScrollRectangle.Height;
15 int width = webBrowser.Document.Body.ScrollRectangle.Width;
16
17 // 调节webBrowser的高度和宽度
18 webBrowser.Height = height;
19 webBrowser.Width = width;
20
21 Bitmap bitmap = new Bitmap(width, height); // 创建高度和宽度与网页相同的图片
22 Rectangle rectangle=new Rectangle(0,0,width,height); // 绘图区域
23 webBrowser.DrawToBitmap(bitmap, rectangle); // 截图
24
25 // 保存图片对话框
26 SaveFileDialog saveFileDialog = new SaveFileDialog();
27 saveFileDialog.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)|*.png";
28 saveFileDialog.ShowDialog();
29
30 bitmap.Save(saveFileDialog.FileName); // 保存图片
31 }
32 }
2 /// 网页加载完成事件处理函数
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
7 {
8 WebBrowser webBrowser = (WebBrowser)sender;
9
10 // 网页加载完毕才保存
11 if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
12 {
13 // 获取网页高度和宽度,也可以自己设置
14 int height = webBrowser.Document.Body.ScrollRectangle.Height;
15 int width = webBrowser.Document.Body.ScrollRectangle.Width;
16
17 // 调节webBrowser的高度和宽度
18 webBrowser.Height = height;
19 webBrowser.Width = width;
20
21 Bitmap bitmap = new Bitmap(width, height); // 创建高度和宽度与网页相同的图片
22 Rectangle rectangle=new Rectangle(0,0,width,height); // 绘图区域
23 webBrowser.DrawToBitmap(bitmap, rectangle); // 截图
24
25 // 保存图片对话框
26 SaveFileDialog saveFileDialog = new SaveFileDialog();
27 saveFileDialog.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)|*.png";
28 saveFileDialog.ShowDialog();
29
30 bitmap.Save(saveFileDialog.FileName); // 保存图片
31 }
32 }
0 0
- 通过 WebBrowser 获取网页截图
- 通过 WebBrowser 获取网页截图
- 通过 WebBrowser 获取网页截图(第二种)
- 通过webbrowser获取网页中的超链接地址
- c#通过webbrowser获取网页中的超链接地址
- delphi Webbrowser 获取网页源代码
- WebBrowser 获取网页内容
- webbrowser获取动态网页元素
- webbrowser截图
- webbrowser 截图
- 网页通过External接口与WebBrowser交互
- C# webBrowser 通过代理访问网页
- 获取webbrowser控件 网页的源码
- 获取webbrowser控件网页的源码
- 通过代码来实现网页截图
- 【C#】通过webbrowser控件获取验证码
- 通过webbrowser控件获取验证码
- VB通过webbrowser获取httponly的cookie
- How-Tos_Writing a service with spring
- Android Studio逆向工程——向Eclipse迁移
- UVa11624大火蔓延的迷宫(代码觉得没问题,但是对答案是3有疑惑,而且没有在oj上验证)
- Visual Studio Code + Golang1.5 debug + MAC OS X 10.11
- 大整数类的应用 bjfu1005
- 通过 WebBrowser 获取网页截图
- 键盘的相关设置
- 经典排序算法(一)冒泡法排序----C++实现
- 使用svn后无法打开程序
- iOS 计算代码块执行时间
- ABAP 动态 SQL
- Android 开发 ContentProvider 获取歌曲列表和联系人的例子
- iOS高级开发——CollectionView的cell中按钮的点击实现
- 记录——《C Primer Plus (第五版)》第十一章编程练习第一题