C#實(shí)現(xiàn)網(wǎng)頁(yè)截圖功能
網(wǎng)頁(yè)截圖是很常見的實(shí)用功能,今天就為大家共享一個(gè)實(shí)現(xiàn)瀏覽器截圖的代碼,主要程序代碼如下所示:
private void Form_Load(object sender, EventArgs e) { //接收web url string colle = string.Empty; string url = string.Empty; //獲取進(jìn)程調(diào)用傳入的命令 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(); // 創(chuàng)建一個(gè)WebBrowser webBrowser.ScrollBarsEnabled = false; // 隱藏滾動(dòng)條 webBrowser.Navigate(url); // 打開網(wǎng)頁(yè) webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); // 增加網(wǎng)頁(yè)加載完成事件處理函數(shù) } private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { WebBrowser webBrowser = (WebBrowser)sender; // 網(wǎng)頁(yè)加載完畢才保存 if (webBrowser.ReadyState == WebBrowserReadyState.Complete) { bool save_suc = true; try { // 獲取網(wǎng)頁(yè)高度和寬度,也可以自己設(shè)置 int height = webBrowser.Document.Body.ScrollRectangle.Height; int width = webBrowser.Document.Body.ScrollRectangle.Width; //截圖寬度、高度 int imgwidth = width - 2 * 60; int imgheight = height - 48; // 調(diào)節(jié)webBrowser的高度和寬度 webBrowser.Height = height; webBrowser.Width = width; Bitmap bitmap = new Bitmap(width, height); // 創(chuàng)建高度和寬度與網(wǎng)頁(yè)相同的圖片 Rectangle rectangle = new Rectangle(0, 0, width, height); // 繪圖區(qū)域 //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);//創(chuàng)建Image System.Drawing.Graphics gp = System.Drawing.Graphics.FromImage(Imag);//獲取Image的Graphics //通過(guò)Graphics繪圖實(shí)現(xiàn)截圖效果 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);
感興趣的讀者還可以根據(jù)自身項(xiàng)目需求進(jìn)一步加以改進(jìn),使之功能更加完善。
- 解決C# 截取當(dāng)前程序窗口指定位置截圖的實(shí)現(xiàn)方法
- c#實(shí)現(xiàn)winform屏幕截圖并保存的示例
- C#截圖程序類似騰訊QQ截圖實(shí)現(xiàn)代碼
- 解決C#全屏幕截圖的實(shí)現(xiàn)方法
- C#實(shí)現(xiàn)屬于自己的QQ截圖工具
- c# 控件截圖的簡(jiǎn)單實(shí)例
- C#實(shí)現(xiàn)通過(guò)ffmpeg從flv視頻文件中截圖的方法
- 對(duì)指定的網(wǎng)頁(yè)進(jìn)行截圖的效果 C#版
- C#中的FileUpload 選擇后的預(yù)覽效果具體實(shí)現(xiàn)
- C# DirectShow預(yù)覽攝像頭并截圖
相關(guān)文章
C#實(shí)現(xiàn)文件壓縮與解壓的方法示例【ZIP格式】
這篇文章主要介紹了C#實(shí)現(xiàn)文件壓縮與解壓的方法,結(jié)合具體實(shí)例形式分析了C#針對(duì)文件進(jìn)行zip格式壓縮與解壓縮的相關(guān)操作技巧,需要的朋友可以參考下2017-06-06C#使用OpenCvSharp4庫(kù)讀取電腦攝像頭數(shù)據(jù)并實(shí)時(shí)顯示
OpenCvSharp4庫(kù)是一個(gè)基于.Net封裝的OpenCV庫(kù),本文主要給大家介紹了C#使用OpenCvSharp4庫(kù)讀取電腦攝像頭數(shù)據(jù)并實(shí)時(shí)顯示的詳細(xì)方法,感興趣的朋友可以參考下2024-01-01C#實(shí)現(xiàn)文件與字符串互轉(zhuǎn)的方法詳解
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)文件與字符串互轉(zhuǎn)效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定幫助,需要的可以參考一下2022-08-08C#使用Microsoft消息隊(duì)列(MSMQ)的示例詳解
Microsoft?Message?Queuing?(MSMQ)?是在多個(gè)不同的應(yīng)用之間實(shí)現(xiàn)相互通信的一種異步傳輸模式,本文主要介紹了C#如何使用Microsoft消息隊(duì)列,需要的可以了解下2024-01-01C#中如何自定義配置上周和本周起始日來(lái)查詢業(yè)務(wù)數(shù)據(jù)(思路詳解)
在C#中并沒有封裝的方法根據(jù)我們需要來(lái)直接獲取上一周某天到某天、本周某天到某天,所以需要我們自己封裝方法來(lái)實(shí)現(xiàn)(我們也可以按照這個(gè)思路使用其他語(yǔ)言來(lái)實(shí)現(xiàn)),感興趣的朋友跟隨小編一起看看吧2023-09-09C#執(zhí)行表達(dá)式樹(Expression Tree)的具體使用
本文將深入探討表達(dá)式樹的基本概念、創(chuàng)建方法、修改和刪除節(jié)點(diǎn)、查詢和遍歷技巧以及在C#中的應(yīng)用示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03DevExpress設(shè)置餅狀圖的Lable位置實(shí)例
這篇文章主要介紹了DevExpress設(shè)置餅狀圖的Lable位置的方法,以實(shí)例形式詳細(xì)講述了設(shè)置餅狀圖的Lable位置具體實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下2014-10-10利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-03-03