public classWebSnapshotsHelper
{
Bitmap m_Bitmap;stringm_Url;intm_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth, m_ThumbnailHeight;public WebSnapshotsHelper(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)
{
WebSnapshotsHelper thumbnailGenerator= newWebSnapshotsHelper(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);
}
}