C#实现网页截图功能
网页截图是很常见的实用功能,今天就为大家共享一个实现浏览器截图的代码,主要程序代码如下所示:
privatevoidForm_Load(objectsender,EventArgse) { //接收weburl stringcolle=string.Empty; stringurl=string.Empty; //获取进程调用传入的命令 string[]args=Environment.GetCommandLineArgs(); string[]args=newstring[]{@"E:\MicroSpace\MicroSpace\localpage\Debug\GetCutImage.exe","-u:http://sliefj.com/template/amo.html","-n:E:\\TEST\\test.jpg"}; for(inti=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; } } WebBrowserwebBrowser=newWebBrowser();//创建一个WebBrowser webBrowser.ScrollBarsEnabled=false;//隐藏滚动条 webBrowser.Navigate(url);//打开网页 webBrowser.DocumentCompleted+=newWebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);//增加网页加载完成事件处理函数 } privatevoidwebBrowser_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgse) { WebBrowserwebBrowser=(WebBrowser)sender; //网页加载完毕才保存 if(webBrowser.ReadyState==WebBrowserReadyState.Complete) { boolsave_suc=true; try { //获取网页高度和宽度,也可以自己设置 intheight=webBrowser.Document.Body.ScrollRectangle.Height; intwidth=webBrowser.Document.Body.ScrollRectangle.Width; //截图宽度、高度 intimgwidth=width-2*60; intimgheight=height-48; //调节webBrowser的高度和宽度 webBrowser.Height=height; webBrowser.Width=width; Bitmapbitmap=newBitmap(width,height);//创建高度和宽度与网页相同的图片 Rectanglerectangle=newRectangle(0,0,width,height);//绘图区域 //Rectanglemm=newRectangle( webBrowser.DrawToBitmap(bitmap,rectangle);//绘制浏览器图片至bitmap intbmpw=bitmap.Width; intbmph=bitmap.Height; System.Drawing.ImageImag=newSystem.Drawing.Bitmap(imgwidth,imgheight);//创建Image System.Drawing.Graphicsgp=System.Drawing.Graphics.FromImage(Imag);//获取Image的Graphics //通过Graphics绘图实现截图效果 gp.DrawImage(bitmap,newRectangle(0,0,imgwidth,imgheight),newRectangle(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(Exceptionex){ } 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);
感兴趣的读者还可以根据自身项目需求进一步加以改进,使之功能更加完善。