// #docfragment "HtmlToImage.Conversion" public static Bitmap ToBitmap(DotNetBrowser.Ui.Bitmap bitmap) { int width = (int)bitmap.Size.Width; int height = (int)bitmap.Size.Height; byte[] data = bitmap.Pixels.ToArray(); Bitmap bmp = new Bitmap(width, height, PixelFormat.Format32bppRgb); BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, bmp.PixelFormat); Marshal.Copy(data, 0, bmpData.Scan0, data.Length); bmp.UnlockBits(bmpData); return(bmp); }
public static void Main() { uint viewWidth = 1024; uint viewHeight = 20000; Size browserSize = new Size(viewWidth, viewHeight); try { using (IEngine engine = EngineFactory.Create(new EngineOptions.Builder { RenderingMode = RenderingMode.OffScreen, ChromiumSwitches = { "--disable-gpu", "--max-texture-size=" + viewHeight } }.Build())) { Console.WriteLine("Engine created"); using (IBrowser browser = engine.CreateBrowser()) { // 1. Resize browser to the required dimension. browser.Size = browserSize; // 2. Load the required web page and wait until it is loaded completely. Console.WriteLine("Loading https://www.teamdev.com/dotnetbrowser"); browser.Navigation.LoadUrl("https://www.teamdev.com/dotnetbrowser").Wait(); // 3. Take the bitmap of the currently loaded web page. Its size will be // equal to the current browser's size. DotNetBrowser.Ui.Bitmap image = browser.TakeImage(); Console.WriteLine("Browser image taken"); // 4. Convert the bitmap to the required format and save it. Bitmap bitmap = ToBitmap(image); bitmap.Save("screenshot.png", ImageFormat.Png); Console.WriteLine("Browser image saved"); } } } catch (Exception e) { Console.WriteLine(e); } Console.WriteLine("Press any key to terminate..."); Console.ReadKey(); }