C#实现网页截图功能

 更新时间:2014年08月19日 16:02:24   投稿:shichen2014  
这篇文章主要介绍了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#在RichTextBox中显示不同颜色文字的方法

    C#在RichTextBox中显示不同颜色文字的方法

    这篇文章主要介绍了C#在RichTextBox中显示不同颜色文字的方法,实例分析了C#中RichTextBox控件控制文字显示效果的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C#获取硬盘编号的方法

    C#获取硬盘编号的方法

    这篇文章主要介绍了C#获取硬盘编号的方法,涉及C#获取硬件属性的相关技巧,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • C#简单访问SQLite数据库的方法(安装,连接,查询等)

    C#简单访问SQLite数据库的方法(安装,连接,查询等)

    这篇文章主要介绍了C#简单访问SQLite数据库的方法,涉及SQLite数据库的下载、安装及使用C#连接、查询SQLIte数据库的相关技巧,需要的朋友可以参考下
    2016-07-07
  • C# 多线程处理List数据的示例代码

    C# 多线程处理List数据的示例代码

    这篇文章主要介绍了C# 多线程处理List数据的示例代码,帮助大家更好的理解和使用c#编程语言,感兴趣的朋友可以了解下
    2020-12-12
  • C#实现协同过滤算法的实例代码

    C#实现协同过滤算法的实例代码

    这篇文章介绍了C#实现协同过滤算法的实例代码,有需要的朋友可以参考一下
    2013-07-07
  • 时间戳与时间相互转换(php .net精确到毫秒)

    时间戳与时间相互转换(php .net精确到毫秒)

    本文给大家分享的时间戳与时间相互转换(php .net精确到毫秒) ,感兴趣的朋友一起学习吧
    2015-09-09
  • C#实现一键清空控件值的示例代码

    C#实现一键清空控件值的示例代码

    这篇文章主要为大家详细介绍了如何利用C#语言实现一键清空控件值的功能,文中的示例代码讲解详细,对我们学习C#有一定帮助,需要的可以参考一下
    2022-09-09
  • C# 设置系统日期格式的方法

    C# 设置系统日期格式的方法

    公司电脑各式各样的都有,里面的设置也有很多不统一的,我们做软件一般会从系统中获取一些数据,比如日期时间,环境变量的路径参数,可以用批处理文件达到我们所想要的目的,也可以用C#代码
    2013-03-03
  • Unity调用打印机打印图片

    Unity调用打印机打印图片

    这篇文章主要为大家详细介绍了Unity通过调用打印机打印图片的代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • C# OpenCvSharp利用白平衡技术实现图像修复功能

    C# OpenCvSharp利用白平衡技术实现图像修复功能

    这篇文章主要为大家详细介绍了C# OpenCvSharp如何利用白平衡技术实现图像修复功能,文中的示例代码讲解详细,希望对大家有一定的帮助
    2024-02-02

最新评论