C#实现网页截图功能
程序员文章站
2024-02-13 10:38:58
网页截图是很常见的实用功能,今天就为大家共享一个实现浏览器截图的代码,主要程序代码如下所示:
private void form_load(object send...
网页截图是很常见的实用功能,今天就为大家共享一个实现浏览器截图的代码,主要程序代码如下所示:
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);
感兴趣的读者还可以根据自身项目需求进一步加以改进,使之功能更加完善。