網頁截圖是很常見的實用功能,今天就為大家共享一個實現瀏覽器截圖的代碼,主要程序代碼如下所示:
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);
感興趣的讀者還可以根據自身項目需求進一步加以改進,使之功能更加完善。
新聞熱點
疑難解答