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);
感兴趣的读者还可以根据自身项目需求进一步加以改进,使之功能更加完善。