C# WebBrowser的DrawToBitmap方法 截取网页保存为图片
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;
}
C# WebBrowser的DrawToBitmap方法 截取网页保存为图片的更多相关文章
- 如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture/html2picture
如何实现批量截取整个网页完整长截图,批量将网页保存成图片web2pic/webshot/screencapture [困扰?疑问?]: 您是否正受到:如何将网页保存为图片的困扰?网页很高很长截图截不全 ...
- 基于html2canvas实现网页保存为图片及图片清晰度优化
一.实现HTML页面保存为图片 1.1 已知可行方案 现有已知能够实现网页保存为图片的方案包括: 方案1:将DOM改写为canvas,然后利用canvas的toDataURL方法实现将DOM输出为包含 ...
- html2canvas 把h5网页保存为图片 区域保存
html2canvas 把h5网页保存为图片 想把一个网页得某些元素,绘制成图片保存,有些数据是接口动态加载的,所以不能UI给到图片,需要我们把api的数据也绘制到图片上 html2canvas这个插 ...
- 使用Selenium截取网页上的图片
前言 同样是为了刷课,没想到工作后依然和大学一样逃脱不了需要刷网课的命运-- 正文 直接说干货了,截取图片,需要截取的图片是什么图片大家都懂(说的就是你,验证码),其他图片的话不需要截取,直接拿到地址 ...
- 火狐浏览器FireFox 如何将整个网页保存为图片
使用Friefox的Pearl Cresent Page Saver插件 如图所示网页有很长的滚动条 点击右下角的该插件选项,将整个页面保存为图片 在桌面上得到了这样一个文件,大小是1263×6083 ...
- 利用html2canvas将当前网页保存为图片.
先分析下这个技术可实现的方式,以及优缺点吧! 前端实现 缺点是:兼容性查,需要高级浏览器支持,因为需要支持 canvas 绘图,还有就是会操作 html5 canvas api.(如果不会使用canv ...
- C# 整个网页保存成图片
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Win10系统Edge浏览器怎么截取网页长图?
有时我们在工作演示时会需要截取网页上的图片,不过简单的截图可以,但如果需要截取超过屏幕大小的整个网页,你是不是就有些束手无策了.虽然拼接图片也是种方法,但毕竟还是不方便,下面好系统重装助手就教你在Wi ...
- php ffmpeg截取视频第一帧保存为图片的方法
php ffmpeg截取视频第一帧保存为图片的方法 <pre> $xiangmupath = $this->getxiangmupath(); $filename = 'chengs ...
随机推荐
- January 31 2017 Week 5 Tuesday
Better to get hurt by the truth than comforted with a lie. 被真相伤害好过被谎言安慰. For ourselves, we need to b ...
- 全国大学生数据挖掘邀请赛中的NDCG
转:http://www.zhizhihu.com/html/y2011/2794.html 评价标准 性能良好的评分模型,应该能够给予那些引起msg或click的候选会员更高的评分(排序靠前),从而 ...
- Manifold Learning: ISOMAP
转:http://hi.baidu.com/chb_seaok/item/faa54786a3ddd1d7d1f8cd0b 在常见的降维方法中,PCA和LDA是最为常用的两种降维方法.PCA是一种无监 ...
- Docker技术三大要点:cgroup, namespace和unionFS的理解
www.docker.com的网页有这样一张有意思的动画: 从这张gif图片,我们不难看出Docker网站想传达这样一条信息, 使用Docker加速了build,ship和run的过程. Docker ...
- (转)从信息隐藏的一个需求看C++接口与实现的分离
原文地址https://blog.csdn.net/tonywearme/article/details/6926649 让我们从stackoverflow上一个同学的问题来开始.问题的原型是这样的( ...
- 使用Fragment填充ViewPager
在上一篇文章中,讲解了使用PagerAdapter作为适配器时的ViewPager的使用方法.然后在实际项目中更多的使用Fragment作为页卡,因为实际开发中每一个页卡要复杂的多.而使用Fragme ...
- [USACO5.2]Snail Trails
嘟嘟嘟 一道很水的爆搜题,然后我调了近40分钟…… 错误:输入数据最好用cin,因为数字可能不止一位,所以用scanf后,单纯的c[0]为字母,c[1]数字………………………… #include< ...
- [转]ASP.NET如何获取上传图片尺寸(是指宽高)
1.采用客户端javascript可以取得图片大小 <input id="FileUpload" type="file" size="27&qu ...
- diogo谈框,仿prompt()方法布局
展示效果: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 【题解】洛谷P4180 [BJWC2010] 严格次小生成树(最小生成树+倍增求LCA)
洛谷P4180:https://www.luogu.org/problemnew/show/P4180 前言 这可以说是本蒟蒻打过最长的代码了 思路 先求出此图中的最小生成树 权值为tot 我们称这棵 ...