Gecko.NETWebBrowserコントロールを使用して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には元々ありません) 。リンクを参照してください。
標準の.NETWebBrowserコントロールを使用していたときにも同じことが起こっていたので、Geckoの問題ではありません。
私はこれにどのようにアプローチするのか分かりません。それをビットマップに保存するためのより良い方法はありますか?それとも、これは.NETでできる最高のことですか?