C# WebBrowser的DrawToBitmap方法 截取网页保存为图片
2024-08-27 15:50:13
bool mark = true;
private void btnOpen_Click(object sender, EventArgs e)
{
mark = true;
//动态创建WebBrowser控件
WebBrowser webBrowser = new WebBrowser();
webBrowser.Navigate(textBox1.Text);
webBrowser.ScrollBarsEnabled = false; //禁用滚动条
webBrowser.ScriptErrorsSuppressed = false; //禁用脚本错误
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
}
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (!mark) return; //可能页面内含有多次请求,只执行一次
WebBrowser webBrowser = (WebBrowser)sender;
// 确认网页已经加载完毕
while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
// 网页加载完毕才保存
if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
{
// 获取网页高度和宽度,也可以自己设置
int width = webBrowser.Document.Body.ScrollRectangle.Width < 1024 ? 1024 : webBrowser.Document.Body.ScrollRectangle.Width;
int height = webBrowser.Document.Body.ScrollRectangle.Height < 768 ? 768 : webBrowser.Document.Body.ScrollRectangle.Height; // 调节webBrowser的高度和宽度 -- (只用动态创建的WebBrowser才可以修改其大小,不知道为什么)
webBrowser.Height = height;
webBrowser.Width = width;
//滚动整个网页 设置此元素的上边缘或下边缘与此文档窗口对齐为止---这样可以截取网页滚动条中的内容
webBrowser.Document.Body.ScrollIntoView(true);
Bitmap bitmap = new Bitmap(width, height); // 创建高度和宽度与网页相同的图片
Rectangle rectangle = new Rectangle(0, 0, width, height); // 绘图区域
webBrowser.DrawToBitmap(bitmap, rectangle); // 截图 // 保存图片
bitmap.Save(@"D:/" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg");
pictureBox1.Image = bitmap as Image;
}
mark = false;
}
最新文章
- 好像越来越觉得 SharePoint &ldquo;难用&rdquo;了
- mac 安装jdk1.5
- 区分debug和release生成文件的名称
- ng-if ng-show ng-hide 的区别
- p范数(p norm)
- Drupal常用开发工具(一)——Devel模块
- Android(java)学习笔记131:Intent启动别的Activity
- 某Python群的入群题目
- Windows Phone 之下拉菜单ListPicker
- CMake 简单介绍
- [HNOI 2001]矩阵乘积
- day4 liaoxuefeng---模块
- 移动web前端开发时注意事项(转)
- 将JSON转换成MAP的工具类
- vue中修改了数据但视图无法更新的情况
- 如何用原生JS实现一个简单的promise
- javascript调用ActiveX接口失败的解决方案及使用心得
- MapGis如何实现WebGIS分布式大数据存储的
- 吴裕雄 数据挖掘与分析案例实战(13)——GBDT模型的应用
- python hash()和hashlib