当前位置: 移动技术网 > IT编程>开发语言>c# > C#实现网页截图功能

C#实现网页截图功能

2019年07月18日  | 移动技术网IT编程  | 我要评论

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

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);

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网