Utilizzare un controllo WebBrowser per genere una screenshot di una pagina web in C#

Immaginiamo di voler creare un sistema che generi ad intervalli temporali predefiniti delle miniature di pagine web, un pò come fa Google Chrome per i siti visitati più spesso.
Serve quindi un componente in grado di effettuare il parsing, l’esecuzione degli script ed infine il rendering di una pagina. Tutto ciò può essere effettuato attraverso l’oggetto WebBrowser, al quale è sufficiente passare l’URL della pagina a cui siamo interessati.

WebBrowser wb = new WebBrowser();
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
wb.Navigate(url);
while (wb.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }
wb.Width = width;
wb.Height = height;

A questo punto nel controllo è presente la struttura HTML della pagina e il controllo è in grado di visualizzare la pagina a video oppure possiamo ottenere un Bitmap da salvare successivamente su disco:

Bitmap bitmap = new Bitmap(wb.Width, wb.Height);
wb.DrawToBitmap(bitmap, new Rectangle(0, 0, wb.Width, wb.Height));
wb.Dispose();
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...