C#实现网页截图功能

网页截图是很常见的实用功能,今天就为大家共享一个实现浏览器截图的代码,主要程序代码如下所示:

private void Form_Load(object sender, EventArgs e)
{
  //接收web url
  string colle = string.Empty;
  string url = string.Empty;
  //获取进程调用传入的命令
  string[] args = Environment.GetCommandLineArgs();
  string[] args = new string[] { @"E:\MicroSpace\MicroSpace\localpage\Debug\GetCutImage.exe", "-u:http://sliefj.com/template/amo.html","-n:E:\\TEST\\test.jpg" };
  for (int i = 1; i < args.Length; i++)
  {
 switch (args[i].Substring(0, 3))
 {
   case "-u:":
 url = args[i].Substring(3);
 break;
   case "-n:":
 imagename = args[i].Substring(3);
 break;
   default:
 colle = args[i];
 break;
 }
  }
  WebBrowser webBrowser = new WebBrowser(); // 创建一个WebBrowser
  webBrowser.ScrollBarsEnabled = false; // 隐藏滚动条
  webBrowser.Navigate(url); // 打开网页
  webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); // 增加网页加载完成事件处理函数
}
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
  WebBrowser webBrowser = (WebBrowser)sender;
  // 网页加载完毕才保存
  if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
  {
 bool save_suc = true;
 try
 {
   // 获取网页高度和宽度,也可以自己设置
   int height = webBrowser.Document.Body.ScrollRectangle.Height;
   int width = webBrowser.Document.Body.ScrollRectangle.Width;
   //截图宽度、高度
   int imgwidth = width - 2 * 60;
   int imgheight = height - 48;
   // 调节webBrowser的高度和宽度
   webBrowser.Height = height;
   webBrowser.Width = width;
   Bitmap bitmap = new Bitmap(width, height); // 创建高度和宽度与网页相同的图片
   Rectangle rectangle = new Rectangle(0, 0, width, height); // 绘图区域
   //Rectangle mm=new Rectangle(
   webBrowser.DrawToBitmap(bitmap, rectangle); // 绘制浏览器图片至bitmap
   int bmpw = bitmap.Width;
   int bmph = bitmap.Height;
   System.Drawing.Image Imag = new System.Drawing.Bitmap(imgwidth, imgheight);//创建Image
   System.Drawing.Graphics gp = System.Drawing.Graphics.FromImage(Imag);//获取Image的Graphics
   //通过Graphics绘图实现截图效果
   gp.DrawImage(bitmap,new Rectangle(0,0,imgwidth,imgheight),new Rectangle(60,48,imgwidth,imgheight),GraphicsUnit.Pixel);
   //保存
   Imag.Save(imagename, System.Drawing.Imaging.ImageFormat.Jpeg);
   //bitmap.Save(imagename, System.Drawing.Imaging.ImageFormat.Jpeg);
   bitmap.Dispose();
   gp.Dispose();
   Imag.Dispose();
 }
 catch (Exception ex)        {
 }
 finally
 {
   this.Dispose(true);
   System.Diagnostics.Process.GetCurrentProcess().Kill();
   this.Close();
   Application.Exit();
 }
  }
}
//图片保存方式
//imagename 图片路径
bitmap.Save(imagename, System.Drawing.Imaging.ImageFormat.Jpeg);
Image.Save(imagename, System.Drawing.Imaging.ImageFormat.Jpeg);

感兴趣的读者还可以根据自身项目需求进一步加以改进,使之功能更加完善。

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#实现网页截图功能

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23649.html

相关内容

C#编程调用Cards.dll实现图形化发牌功能示例

用Newtonsoft将json串转为对象的方法(详解)

C#操作数据库中存取图片文件的方法

C# readnodefile()不能读取带有文件名为汉字的osg文件解决方法


C#使用foreach语句遍历集合类型的方法

C#通过域名获得IP地址的方法

C#中的try catch finally用法分析

C#实现Log4Net日志分类和自动维护实例

时间: 2024-10-10 10:58:15

C#实现网页截图功能的相关文章

html2canvas.js网页截图功能

需求:将网页生成图片,用户自行长按图片进行保存图片,再分享朋友圈.其中,都可识别图中的二维码.(二维码过小会识别不出) 首先,先来科普一下微信网页识别二维码原理:截屏识别,当客户端发现用户在网页的img标签内进行长按操作时,会立刻截屏并且启动二维码识别算法.https://www.cnblogs.com/daipi... 发现官网中的html2canvas.js插件存在一些bug: 1.截图不全,不完整 解决方案: //修改源码,添加自定设置高度宽度 var width = options.wi

html2canvas根据DOM元素样式实现网页截图

html2canvas根据DOM元素样式实现网页截图 html2canvas是一个相当不错的JavaScript类库,它使用了html5和css3的一些新功能特性,实现了在客户端对网页进行截图的功能.html2canvas通过获取页面的DOM和元素的样式信息,并将其渲染成canvas图片,从而实现给页面截图的功能. 它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建.当浏览器不支持Canvas时,将采用Flashcanvas或ExplorerCanvas技术代替实现.以下浏览器能够很好的

canvas与html5实现视频截图功能

这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上已经加载完成了这个视频,这样才能够方便的对其操作.如果使用下面直接嵌入<video>标签的方式: 1 2 3 4 5 <video loop controls id="testmp4" width="500" height="400"

如何以Java实现网页截图技术

今天看到某网友关于"如何以Java实现网页截图技术"的咨询帖,由于出现该咨询的地点非常不适合较长回复,故以博文形式回答. 事实上,如果您想以Java实现网页截图,也就是"输入一段网址,几秒钟过后就能截取一张网页缩略图"的效果.那么,您至少有3种方式可以选择. 1.最直接的方式--使用Robot 方法详解:该方法利用Robat提供的强大桌面操作能力,硬性调用浏览器打开指定网页,并将网页信息保存到本地. 优势:简单易用,不需要任何第三方插件. 缺点:不能同时处理大量数据

C#开发ActiveX网页截图控件

故事背景:Java组的小伙伴需要一个能在IE(还是6...)下截图并返回给网页的功能,但是IE做起来很麻烦(可能根本做不到),于是找到我写一个ActiveX控件实现此功能,想着可能还有其他小伙伴需要这个功能,于是就PO出来,供需要的人使用,当然也可以作为学习C#编写ActiveX的一个简单入门教程(VC++效果更好). 功能截图如下: 代码分为两个核心部分:1.C#屏幕截图:2.C#开发ActivX控件. 1.屏幕截图,这个在网上找到了一个只需要5行代码的实现(超级精简),当然你也可以费点功夫实

谷歌浏览器和火狐浏览器插件安装方法,分别以”谷歌访问助手”和”网页截图”为例

本文内容 问题陈述 1. 谷歌浏览器安装插件步骤 1.1 基本准备 1.2 安装插件步骤图文展示 1.3 安装后测试使用效果 2. 火狐浏览器安装插件步骤 2.1 基本准备 2.2 安装插件步骤图文展示 2.3 安装后测试使用效果 问题陈述 本篇博客重在解决两个问题: 1. 为了解决谷歌浏览器不能使用谷歌搜索引擎的问题.当我们需要使用谷歌搜索引擎时,则需要安装插件--谷歌访问助手.安装好谷歌访问助手之后,如需安装其他插件,可以进入Chrome网上应用店搜索安装. 2. 为了解决火狐浏览器部分功能

有了 serverless,前端也可以快速开发一个 Puppeteer 网页截图服务

更多云原生技术资讯可关注阿里巴巴云原生技术圈. Puppeteer 是什么? puppeteer 官网的介绍如下: Puppeteer is a Node library which provides a high-level API to control Chrome or Chromium over the DevTools Protocol. Puppeteer runs headless by default, but can be configured to run full (non

ActiveX网页截图插件

该插件目前只提供截图功能,你可以继续优化截图的编辑功能. 该插件使用js调用OpenScreen方法后启动截图功能,在截图功能启动后按键盘C键抓取屏幕,然后选中截取部分后双击选取将会完成截图,鼠标的右键为取消选中区域和取消已抓取的的屏幕.双击桌面右下角的文字可以关闭截图功能. /// <summary> /// 截图核心 /// </summary> [Description("截图核心")] public class ScreenCore { #region

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级

最新版勤哲Excel服务器V2016.12.0.292无限用户支持手机APP,微信,网页等功能不绑定电脑,任意安装,支持后续升级. 这个版本发布过之后,再发布新的版本需要到下个月的中下旬,老朋友可以使用本版本后面延续升级 目前有大约127家用户在用,没有修改过注册授权文件,系统非常成熟,推荐指数为五星,QQ:619920289 麦枫论坛http://www.mfsun.com 简介 EXCEL服务器作为一款客户化.综合性管理软件,它通过Excel就能构造出您自主的管理系统:同时,她也可将您公司现