usingSystem.IO;usingSystem.Drawing;usingSystem.Threading;usingSystem.Windows.Forms;public classWebSiteThumbnail
{
Bitmap m_Bitmap;stringm_Url;intm_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth, m_ThumbnailHeight;public WebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, intThumbnailHeight)
{
m_Url=Url;
m_BrowserHeight=BrowserHeight;
m_BrowserWidth=BrowserWidth;
m_ThumbnailWidth=ThumbnailWidth;
m_ThumbnailHeight=ThumbnailHeight;
}public static Bitmap GetWebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, intThumbnailHeight)
{
WebSiteThumbnail thumbnailGenerator= newWebSiteThumbnail(Url, BrowserWidth, BrowserHeight, ThumbnailWidth, ThumbnailHeight);returnthumbnailGenerator.GenerateWebSiteThumbnailImage();
}publicBitmap GenerateWebSiteThumbnailImage()
{
Thread m_thread= new Thread(newThreadStart(_GenerateWebSiteThumbnailImage));
m_thread.SetApartmentState(ApartmentState.STA);
m_thread.Start();
m_thread.Join();returnm_Bitmap;
}private void_GenerateWebSiteThumbnailImage()
{
WebBrowser m_WebBrowser= newWebBrowser();
m_WebBrowser.ScrollBarsEnabled= false;
m_WebBrowser.Navigate(m_Url);
m_WebBrowser.DocumentCompleted+= newWebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);while (m_WebBrowser.ReadyState !=WebBrowserReadyState.Complete)
Application.DoEvents();
m_WebBrowser.Dispose();
}private void WebBrowser_DocumentCompleted(objectsender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser m_WebBrowser=(WebBrowser)sender;
m_WebBrowser.ClientSize= new Size(this.m_BrowserWidth, this.m_BrowserHeight);
m_WebBrowser.ScrollBarsEnabled= false;
m_Bitmap= newBitmap(m_WebBrowser.Bounds.Width, m_WebBrowser.Bounds.Height);
m_WebBrowser.BringToFront();
m_WebBrowser.DrawToBitmap(m_Bitmap, m_WebBrowser.Bounds);
m_Bitmap= (Bitmap)m_Bitmap.GetThumbnailImage(m_ThumbnailWidth, m_ThumbnailHeight, null, IntPtr.Zero);
}
}
Bitmap m_Bitmap= WebSiteThumbnail.GetWebSiteThumbnail("这里是html的连接地址", 990, 2798, 990, 2798);
MemoryStream ms= newMemoryStream();
m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Png);//JPG、GIF、PNG等均可
byte[] buff =ms.ToArray();
Response.BinaryWrite(buff);
System.Drawing.Image img=byteArrayToImage(buff);string url = "图片保存路径.png";
img.Save(HttpContext.Current.Server.MapPath(url));