Capture Screenshot of Website from URL in C#

Updated on     Kisan Patel


How to Capture Screenshot of Website from URL in C#?
Programmatically get a screenshot of a page in C#
How do take a screenshot of a webpage programmatically given the URL as input?


If you want to capture a screenshot of a complete website, take a look at the following snippet.

private void WebsiteScreenshot(string url, string file)
    //Create a webbrwoser object
    WebBrowser browser = new WebBrowser();
    //Deactivate scrollbars, unless you want them to
    //appear on your screenshot
    browser.ScrollBarsEnabled = false;
    //Suppress (java-)script error popups
    browser.ScriptErrorsSuppressed = true;
    //Open the given url in webbrowser
    browser.Navigate(new Uri(url));
    //Wait until the page is fully loaded
    while (browser.Document == null || browser.Document.Body == null)
    //Resize the webbrowser object to the same size as the
    Rectangle websiteSize = browser.Document.Body.ScrollRectangle;
    browser.Size = new Size(websiteSize.Width,websiteSize.Height);
    //Create a bitmap object with the same dimensions as the website
    Bitmap bmp = new Bitmap(websiteSize.Width, websiteSize.Height);
    //Paint the website contents to the bitmap
    new Rectangle(0, 0, websiteSize.Width, websiteSize.Height));
    //Save the bitmap at the given filepath
    bmp.Save(file, ImageFormat.Png);

You can then call the method as follows:

//If you want file extension than .png, don't forget to change the
//ImageFormat-type in the above main function!
WebsiteScreenshot("", "c:\website_screenshot.png");


Leave a Reply