【发布时间】:2012-08-14 19:12:10
【问题描述】:
我使用 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 最初没有它们),请参阅the link。
当我使用标准的 .NET WebBrowser 控件时发生了同样的事情,所以这不是 Gecko 问题。
我不知道如何解决这个问题。 有没有更好的方法将它保存到位图?还是这是 .NET 可以做到的最好的?
【问题讨论】:
标签: c# .net webbrowser-control gecko