C#使用WebBrowser对指定网页截图

时间:2022-11-26 11:52:55

使用webbrowser获取html,然后输出的位图即可。

 

       WebBrowser wb = new WebBrowser();  // 创建一个WebBrowser
            wb.ScrollBarsEnabled = false;  // 隐藏滚动条
            
            wb.Navigate("https://twitter.com/");  // 打开网页
            wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);  // 增加网页加载完成事件处理函数
     private void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            WebBrowser wb = (WebBrowser)sender;
            // 网页加载完毕才保存
            if (wb.ReadyState == WebBrowserReadyState.Complete)
            {
                // 获取网页高度和宽度,也可以自己设置
                int height = wb.Document.Body.ScrollRectangle.Height;
                int width = wb.Document.Body.ScrollRectangle.Width;

                // 调节webBrowser的高度和宽度
                wb.Height = height;
                wb.Width = width;

                Bitmap bitmap = new Bitmap(width, height);  // 创建高度和宽度与网页相同的图片
                Rectangle rectangle = new Rectangle(0, 0, width, height);  // 绘图区域
                wb.DrawToBitmap(bitmap, rectangle);  // 截图

                // 保存图片对话框
                SaveFileDialog saveFileDialog = new SaveFileDialog();
                saveFileDialog.Filter = "JPEG (*.jpg)|*.jpg|PNG (*.png)|*.png";
                saveFileDialog.ShowDialog();

                bitmap.Save(saveFileDialog.FileName);  // 保存图片
            }
        }