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 ...
随机推荐
- C#中internal关键字
对于一些大型的项目,通常由很多个DLL文件组成,引用了这些DLL,就能访问DLL里面的类和类里面的方法.比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现记录日志的功能,这个DLL文件 ...
- MapReduce过程详解(基于hadoop2.x架构)
本文基于hadoop2.x架构详细描述了mapreduce的执行过程,包括partition,combiner,shuffle等组件以及yarn平台与mapreduce编程模型的关系. mapredu ...
- Windows文件批量重命名
选择要命名的文件 按F2,编辑名字 然后按回车就行了 电视剧命名,我认为这样足够了
- Service Fabric eShop On Containers
Service Fabric承载eShop On Containers 从模块化到微服务化 从Pet Shop 到eShop on Container都是Microsoft在技术演进的路径上给开发者展 ...
- 针对ie的css hack
/* IE9 , IE10 ,IE11 */ @media screen and (min-width:0\0) { /* IE9 , IE10 ,IE11 rule sets go here * ...
- css3的代替图片的三角形
1.小三角形(与边框结合,不兼容IE8) .callout{ position: relative; width: 100px; height: 100px; background: #fce6ed; ...
- 【题解】洛谷P1514 [NOIP2010TG] 引水入城(DFS+DP)
次元传送门:洛谷P1514 思路 可以证明如果有解 那么每个蓄水池可以覆盖到的干旱区必定是线段 证明: 举个栗子 8 9 8 7 9 7 6 9 6 明显到不了中间的点 如果不是连续的线段 中间肯定有 ...
- 《Inetnet History,Technology and Security》学习笔记
前言 本文为观看Cousera的Michigan<Internet History, Technology and Security>教程的个人学习笔记,包括了每个week的概要和个人感想 ...
- 点击HTML页面问号出现提示框
本demo的功能:点击页面按钮在其边缘出现提示信息,点击页面任何一处则消失. 如下图: 1.所需插件: jquery插件: layer插件: 2.HTML内容: ==注意==: class=" ...
- Oracle数据库,简单SQL练习与答案
1.数据 --创建职员表create table tbEmp( eID number primary key, --职员编号 eName varchar2(20) not null, --职员姓名 e ...