1. 程式人生 > >C#實現網頁截圖功能

C#實現網頁截圖功能

jpeg near http 集合類 pri eve display aging img

網頁截圖是很常見的實用功能,今天就為大家共享一個實現瀏覽器截圖的代碼,主要程序代碼如下所示:

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);

感興趣的讀者還可以根據自身項目需求進一步加以改進,使之功能更加完善。

除聲明外,跑步客文章均為原創,轉載請以鏈接形式標明本文地址
C#實現網頁截圖功能

本文地址: http://www.paobuke.com/develop/c-develop/pbk23649.html






相關內容

技術分享C#編程調用Cards.dll實現圖形化發牌功能示例技術分享用Newtonsoft將json串轉為對象的方法(詳解)技術分享C#操作數據庫中存取圖片文件的方法技術分享C# readnodefile()不能讀取帶有文件名為漢字的osg文件解決方法
技術分享C#使用foreach語句遍歷集合類型的方法技術分享C#通過域名獲得IP地址的方法技術分享C#中的try catch finally用法分析技術分享
C#實現Log4Net日誌分類和自動維護實例

C#實現網頁截圖功能