0

我正在尝试将 webbrowser 控件作为图像。但是当我的代码给我一个全屏图像时。我只想获得网络浏览器图像。我应该如何修复我的代码以获得正确的图像?

Bitmap memoryImage;
    private void button2_Click(object sender, EventArgs e)
    {

     Graphics myGraphics = webBrowser1.CreateGraphics();
     Size s = webBrowser1.Size;
     memoryImage = new Bitmap(webBrowser1.Width,webBrowser1.Height, myGraphics);
     Graphics memoryGraphics = Graphics.FromImage(memoryImage);
     memoryGraphics.CopyFromScreen(webBrowser1.Location.X, webBrowser1.Location.Y, 0, 0, s);
     memoryImage.Save("C:\\Users\\Koo\\Desktop\\NaverMap.png");
4

1 回答 1

0

使用以下代码 - 支持并确实有效,但并不总是能正常工作。

在某些情况下,你会得到一个空白的图像截图(当它加载更复杂的 html 时,它失败的可能性就越大)

using (var browser = new System.Windows.Forms.WebBrowser())
{
     browser.DocumentCompleted += delegate
     {
         using (var pic = new Bitmap(browser.Width, browser.Height))
         {
             browser.DrawToBitmap(pic, new Rectangle(0, 0, pic.Width, pic.Height));
             pic.Save(imagePath);
         }
     };

     browser.Navigate(Server.MapPath("~") + htmlPath); //a file or a url
     browser.ScrollBarsEnabled = false;

     while (browser.ReadyState != System.Windows.Forms.WebBrowserReadyState.Complete)
     {
         System.Windows.Forms.Application.DoEvents();
     }
}
于 2019-04-09T12:32:06.870 回答