将网页保存成图片
2011-12-01 16:30 Carl Xing 阅读(549) 评论(0) 编辑 收藏 举报新建一个win Form应用程序
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Snowdream.Sample.WebpageSnapshot
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 按钮按下事件处理函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void SaveSnapshot_Click(object sender, EventArgs e)
{
WebBrowser webBrowser = new WebBrowser(); // 创建一个WebBrowser
webBrowser.ScrollBarsEnabled = false; // 隐藏滚动条
webBrowser.Navigate(address.Text); // 打开网页
webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); // 增加网页加载完成事件处理函数
}
/// <summary>
/// 网页加载完成事件处理函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser webBrowser = (WebBrowser)sender;
// 网页加载完毕才保存
if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
{
// 获取网页高度和宽度,也可以自己设置
int height = webBrowser.Document.Body.ScrollRectangle.Height;
int width = webBrowser.Document.Body.ScrollRectangle.Width;
// 调节webBrowser的高度和宽度
webBrowser.Height = height;
webBrowser.Width = width;
Bitmap bitmap = new Bitmap(width, height); // 创建高度和宽度与网页相同的图片
Rectangle rectangle=new Rectangle(0,0,width,height); // 绘图区域
webBrowser.DrawToBitmap(bitmap, rectangle); // 截图
// 保存图片对话框
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)|*.png";
saveFileDialog.ShowDialog();
bitmap.Save(saveFileDialog.FileName); // 保存图片
}
}
}
}