1. using System.IO;
  2. using System.Drawing;
  3. using System.Drawing.Imaging;
  4. using System.Threading;
  5. using System.Windows.Forms;
  6. using System;
  7.  
  8. namespace ConsoleApp1
  9. {
  10. public class CaptureWebPage
  11. {
  12.  
  13. public byte[] picbytes;
  14.  
  15. public CaptureWebPage(string url)
  16. {
  17. string bmpPath =DateTime.Now.ToString("yyyyMMddHHmmssffff")+".bmp";
  18. Bitmap bmp = new Bitmap(,);
  19.  
  20. makepicture(url);
  21. bmp = ByteToImage(picbytes);
  22. bmp.Save(bmpPath);
  23. }
  24. private void makepicture(string url)
  25. {
  26. Thread thread = new Thread(delegate ()
  27. {
  28. using (WebBrowser browser = new WebBrowser())
  29. {
  30. browser.ScrollBarsEnabled = true;
  31. browser.AllowNavigation = true;
  32. browser.Navigate(url);
  33. browser.Width = ;
  34. browser.Height =;
  35. browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted);
  36. while (browser.ReadyState != WebBrowserReadyState.Complete)
  37. {
  38. System.Windows.Forms.Application.DoEvents();
  39. }
  40.  
  41. }
  42. });
  43. thread.SetApartmentState(ApartmentState.STA);
  44. thread.Start();
  45. thread.Join();
  46. }
  47.  
  48. private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
  49. {
  50. WebBrowser browser = sender as WebBrowser;
  51. using (Bitmap bitmap = new Bitmap(browser.Width, browser.Height))
  52. {
  53. browser.DrawToBitmap(bitmap, new System.Drawing.Rectangle(, , browser.Width, browser.Height));
  54. using (MemoryStream stream = new MemoryStream())
  55. {
  56. bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
  57. byte[] bytes = stream.ToArray();
  58. picbytes = bytes;
  59.  
  60. }
  61. }
  62. }
  63.  
  64. public static Bitmap ByteToImage(byte[] blob)
  65. {
  66. MemoryStream mStream = new MemoryStream();
  67. byte[] pData = blob;
  68. mStream.Write(pData, , Convert.ToInt32(pData.Length));
  69. Bitmap bm = new Bitmap(mStream, false);
  70. mStream.Dispose();
  71. return bm;
  72. }
  73. }
  74. }

C#网页 截图的更多相关文章

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

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

  2. html2canvas 网页截图 下载 上传

    利用html2canvas插件 对网页截图 并下载和上传图片. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E ...

  3. iPhone 收藏网址[添加到书签] 和 [添加到主屏幕] 显示自定义图标,而不是网页截图

    iPhone 收藏网址[添加到书签] 和 [添加到主屏幕] 显示自定义图标,而不是网页截图: <!-- Safari浏览器[添加到书签] --> <link rel="sh ...

  4. chrome也可以整张网页截图,保存完整网页为图片

    转自:http://www.webkaka.com/blog/archives/chrome-save-a-webpage.html 关于浏览器截图,一直以为Chrome无能为力,最近发现,原来Chr ...

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

    转自   http://blog.csdn.net/cping1982/article/details/5353049 今天看到某网友关于“如何以Java实现网页截图技术”的咨询帖,由于出现该咨询的地 ...

  6. 网页截图工具CutyCapt

    网页截图工具CutyCapt   CuteCapt是Kali Linux提供的一款网页截图工具.该工具运行在命令行中,可以将WebKit引擎解析的网页保存为图片.它保存的文件支持矢量图和位图两大类型, ...

  7. Python中使用 Selenium 实现网页截图实例

    Selenium 是一个可以让浏览器自动化地执行一系列任务的工具,常用于自动化测试.不过,也可以用来给网页截图.目前,它支持 Java.C#.Ruby 以及 Python 四种客户端语言.如果你使用 ...

  8. 使用html2canvas实现网页截图,并嵌入到PDF

    使用html2canvas实现网页截图并嵌入到PDF 以前我们只能通过截图工具进行截取图像.这使得在业务生产中,变得越来越不方便.目前的浏览器功能越来越强大,H5也逐渐普及,浏览器也可以实现截图了.这 ...

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

    更多云原生技术资讯可关注阿里巴巴云原生技术圈. Puppeteer 是什么? puppeteer 官网的介绍如下: Puppeteer is a Node library which provides ...

  10. selenium网页截图和截图定位(无界面)phantomjs

    phantomjs是一款软件,需要重新安装. 参考: https://blog.csdn.net/liyahui_3163/article/details/79064108 案例代码: from se ...

随机推荐

  1. Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之八 || API项目整体搭建 6.3 异步泛型仓储+依赖注入初探

    本文梯子 本文3.0版本文章 回顾 1.Sqlsugar 的使用 2.修改数据连接字符串 今天要完成的浅紫色部分 一.设计仓储基类接口——IBaseRepository.cs 二.将其他的仓储接口,继 ...

  2. Java关键字之abstract、final、static用法

    abstract:即抽象的,可以修饰类.方法: 修饰类:当有一个方法为抽象方法时,这个类就是抽象类,抽象类不能被new,它是一个不完整的类. 修饰方法:这个方法就是抽象的,即只能方法的定义,没有方法的 ...

  3. 简单文件传输协议TFTP分析还原

    - 协议介绍 TFTP有如下特征: 1.UDP承载,请求端口固定为69: 2.没有列出目录内容功能: 3.无验证和加密机制: 4.仅有读取或写入文件功能: 5.支持三种不同的传输模式:"ne ...

  4. iOS10跳转至设置页面

    在iOS10之前,跳转到系统设置界面的某个指定界面的方式如下: //打开定位服务界面 NSURL*url=[NSURL URLWithString:@"prefs:root=Privacy& ...

  5. 【Servlet】JavaWeb应用的执行流程

    Tomcat与Servlet简介 Tomcat Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.S ...

  6. mysql综合性练习

    题目描述 设定有一个数据库,里面有4张表: 学生表(student) 课程表(course) 成绩表(score) 教师信息表(teacher) 表结构如下: 表一_学生表(student) 属性名 ...

  7. Python—实现ssl认证

    https://blog.csdn.net/vip97yigang/article/details/84721027 https://www.cnblogs.com/lsdb/p/9397530.ht ...

  8. 如何将list集合转成String对象

    使用Stringutils中的join方法: 方法一: public String listToString(List list, char separator) { return org.apach ...

  9. to_sql, to_csv, to_excel, to_json

    1.to_sql def to_sql(self, name, con, schema=None, if_exists="fail", index=True, index_labe ...

  10. [C14] 总结(Conclusion)

    总结(Conclusion) 总结和致谢(Summary and Thank You) 欢迎来到<机器学习>课的最后一段视频.我们已经一起学习很长一段时间了.在最后这段视频中,我想快速地回 ...