我使用Gecko .NET WebBrowser控件來獲取HTML頁面。WebBrowser.DrawToBitmap留下白色像素
然後我用這個代碼,使這個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可以做的?