把网页另存为图片,记得最早知道这个功能是用“世界之窗”浏览器的时候发现的,好像很久前的事情了。一直不知其原理。
今日上班没事,突然想到了这个问题,于是乎在vs里敲下“Webbrowser1.” 然后就逐个逐个的看有什么好玩的方法。过了好一会儿轻击后,发现了一个比较吸引的字“DrawToBitmap”,有点意思后就试一试。
发现就是一个把控件画成图片的方法。突然意识到这个可以用来实现网页保存为图片的功能实现。于是便研究了一下,得出了结论,另存为图片可以这么简单的。
Step1:
首先,在窗体上放一个Textbox、Button、Webbrowser 控件各一个。
this
.button1
=
new
System.Windows.Forms.Button();
this .textBox1 = new System.Windows.Forms.TextBox();
this .webBrowser1 = new System.Windows.Forms.WebBrowser();
this .textBox1 = new System.Windows.Forms.TextBox();
this .webBrowser1 = new System.Windows.Forms.WebBrowser();
添加Button事件
void
Button1Click(
object
sender, EventArgs e)
{
webBrowser1.Navigate(textBox1.Text);
}
{
webBrowser1.Navigate(textBox1.Text);
}
当Webbrowser控件加载完网页后,执行该方法开始绘我们的图了。
void
WebBrowser1DocumentCompleted(
object
sender, WebBrowserDocumentCompletedEventArgs e)
{
Size mySize = webBrowser1.Document.Window.Size ;
Bitmap myPic = new Bitmap (mySize.Width ,mySize.Height );
Rectangle myRec = new Rectangle ( 0 , 0 ,mySize.Width,mySize.Height );
webBrowser1.Size = mySize;
webBrowser1.DrawToBitmap(myPic,myRec);
myPic.Save ( " c:\\aaaaaa.jpg " );
MessageBox.Show ( " Ok " );
}
{
Size mySize = webBrowser1.Document.Window.Size ;
Bitmap myPic = new Bitmap (mySize.Width ,mySize.Height );
Rectangle myRec = new Rectangle ( 0 , 0 ,mySize.Width,mySize.Height );
webBrowser1.Size = mySize;
webBrowser1.DrawToBitmap(myPic,myRec);
myPic.Save ( " c:\\aaaaaa.jpg " );
MessageBox.Show ( " Ok " );
}
1:第一行代码:获取打开的网页的大小。
2:新建一张图片,大小为网页内容的大小。
3:新建一个矩形;
4:设置Webbrowser的大小,为刚好显示整个页面。
5:使用DrawToBitmap功能绘制Webbrowser控件为图片。
6:图片保存。
7:提示你ok了。
--------------------
就是这么简单,一个网页另存为图片的功能就ok了。当然为了比较美观,建议把Webbrowser控件设置为隐藏。