C#實現(xiàn)網(wǎng)頁截圖功能
更新時間:2014年08月19日 16:02:24 投稿:shichen2014
這篇文章主要介紹了C#實現(xiàn)網(wǎng)頁截圖功能,是非常實用的一個功能,需要的朋友可以參考下
網(wǎng)頁截圖是很常見的實用功能,今天就為大家共享一個實現(xiàn)瀏覽器截圖的代碼,主要程序代碼如下所示:
private void Form_Load(object sender, EventArgs e)
{
//接收web url
string colle = string.Empty;
string url = string.Empty;
//獲取進程調(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)建一個WebBrowser
webBrowser.ScrollBarsEnabled = false; // 隱藏滾動條
webBrowser.Navigate(url); // 打開網(wǎng)頁
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); // 增加網(wǎng)頁加載完成事件處理函數(shù)
}
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser webBrowser = (WebBrowser)sender;
// 網(wǎng)頁加載完畢才保存
if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
{
bool save_suc = true;
try
{
// 獲取網(wǎng)頁高度和寬度,也可以自己設(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)頁相同的圖片
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
//通過Graphics繪圖實現(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ù)自身項目需求進一步加以改進,使之功能更加完善。
相關(guān)文章
C#使用post發(fā)送和接收數(shù)據(jù)的方法
這篇文章主要介紹了C#使用post發(fā)送和接收數(shù)據(jù)的方法,涉及C#使用post收發(fā)數(shù)據(jù)的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04
Unity性能優(yōu)化Shader函數(shù)ShaderUtil.GetShaderGlobalKeywords用法示例
這篇文章主要為大家介紹了Unity性能優(yōu)化Shader函數(shù)ShaderUtil.GetShaderGlobalKeywords用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
c#動態(tài)類型,及動態(tài)對象的創(chuàng)建,合并2個對象,map實例
下面小編就為大家?guī)硪黄猚#動態(tài)類型,及動態(tài)對象的創(chuàng)建,合并2個對象,map實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02

