我使用 Gecko .NET WebBrowser 控件来获取 HTML 页面。
然后我使用这段代码来截取这个 HTML 页面:
void LoadingFinished(object sender, EventArgs args)
{
try
{
myBrowser.Document.Body.SetAttribute("style", "overflow:hidden");
if (screenshotkey != "")
{
Bitmap bitmap = new Bitmap(myBrowser.Width, myBrowser.Height);
myBrowser.DrawToBitmap(bitmap, new Rectangle(0, 0, myBrowser.Width, myBrowser.Height));
bitmap.Save("Screenshots/" + screenshotkey + ".png", ImageFormat.Png);
}
}
catch (Exception dfkvsn)
{
errorloadingpage();
}
}
我从上面的代码中删除了一些不是很重要的东西——比如设置浏览器宽度等。最初的代码是 100% 功能的。
问题是,当它保存 png 屏幕截图(DrawToBitmap 线)时 - 在某些地方,创建的图片有不应该存在的白色像素(WebBrowser 最初没有它们),请参阅链接。
当我使用标准的 .NET WebBrowser 控件时也发生了同样的事情,所以这不是 Gecko 问题。
我不知道如何解决这个问题。有没有更好的方法将它保存到位图?或者这是 .NET 能做的最好的事情吗?