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#截图的更多相关文章

  1. 通过adb方式给安卓手机截图的cmd批处理文件

    @echo off rem  通过adb方式截图rem  需要安装adb ,一般安装了android sdk 默认带了adb ,路径为sdk目录的android-sdk\platform-toolsr ...

  2. canvas与html5实现视频截图功能

    这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上 ...

  3. 记:MySQL 5.7.3.0 安装 全程截图

    前言: 下一个班快讲MySQL数据库了,正好把服务器里面的MySQL卸了重装了一下. 截个图,作为笔记.也正好留给需要的朋友们. 目录: 下载软件 运行安装程序 安装程序欢迎界面 许可协议 查找更新 ...

  4. Atitit onvif 协议截图 getSnapshotUri 使用java

    Atitit onvif 协议截图 getSnapshotUri 使用java 1.1. ONVIF Device Test Tool1 1.2. 源码2 1.3. 直接浏览器访问http://192 ...

  5. 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置

    简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...

  6. 使用PhantomJS实现网页截图服务

    这是上半年遇到的一个小需求,想实现网页的抓取,并保存为图片.研究了不少工具,效果都不理想,不是显示太差了(Canvas.Html2Image.Cobra),就是性能不怎么样(如SWT的Brower). ...

  7. 获取View的截图-将View转换为Bitmap对象

    开发中,有时候需要获取View的截图来做动画来达到动画流程的目的 原理:将View的内容画到一个Bitmap画布上,然后取出 下面封装了一个从View生成Bitmap的工具类 /** * 将View转 ...

  8. 跨应用使用Spoon框架截图的方法

    spoon框架是一个很棒的用例驱动跟测试结果生成加工的框架.但在使用spoon-client时,传入参数需要被测应用的activity实例,跨应用测试会很受限(当然也可能是因为我对android不熟导 ...

  9. selenium 页面截图并保存

    import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org. ...

  10. C# WinForm 技巧:控件截图

    Point screenPoint = 控件.PointToScreen(new Point()); Rectangle rect = new Rectangle(screenPoint, chart ...

随机推荐

  1. 边工作边刷题:70天一遍leetcode: day 84-3

    Meeting Rooms I/II 要点:这题和skyline类似,利用了interval start有序的特点,从左向右处理,用一个heap来动态表示当前占用rooms的时间段,所以heap的si ...

  2. ZOJ 3233 Lucky Number --容斥原理

    这题被出题人给活活坑了,题目居然理解错了..哎,不想多说. 题意:给两组数,A组为幸运基数,B组为不幸运的基数,问在[low,high]区间内有多少个数:至少被A组中一个数整除,并且不被B中任意一个数 ...

  3. Linux下php安装memcache扩展

    安装环境:CentOS 6.4 php扩展memcache的作用是为了支持memcached数据库缓存服务器,下面是安装方法. 1.下载 下载地址:http://pecl.php.net/packag ...

  4. 斯坦福大学 iOS 7应用开发 ppt

    上网的找了很久都不全,最后发现原来网易那个视频下面就有完整的PPT..

  5. C#FTP登入

    FtpWebRequest reqFTP; try { // 根据uri创建FtpWebRequest对象 reqFTP = (FtpWebRequest)FtpWebRequest.Create(n ...

  6. VS2013无法启动 IIS Express Web解决办法

    不要勾选[覆盖应用程序根URL(U)],或让[覆盖应用程序根URL(U)]下面的输入框和上面的输入框的地址一样! 使用VS2013有一段时间了,因前期都是编写C/S程序,没有使用到B/S调试器.前几日 ...

  7. sql语句原则

    整理尘封的文档,sql语句方面的几条原则再次回顾一下.更详细版本 1. 尽量使用临时表扫描替代全表扫描: 2. 抛弃in和not in语句,使用exists和not exists替代:IN和EXIST ...

  8. 数字转换为壹仟贰佰叁拾肆的Java方法

    网银转帐时, 填写金额后下方出现的汉字金额, 这是Java下的实现. public static String toRMB(double money) { char[] s1 = {'零', '壹', ...

  9. 获取元素的xpath, 转换xpath为csspath进行jQuery元素获取

    获取元素的xpath, 转换xpath为csspath进行jQuery元素获取 博客分类: 编程心得 jQueryCSSHTML  var $shadow = new Object(); /** 获取 ...

  10. iOS——数据安全性问题小结

    在移动互联网快速发展的今天,iOS应用直接运行在用户的手机上,与运行在服务器后台服务相比,更有可能被黑客攻击. a.网络安全: 1.1 安全地传输用户密码 事先生成一对用于加密的公私钥,客户端登录的时 ...