我尝试使用WebBrowser组件捕获用户正在浏览的任何网站的全屏截图。目前,我只能捕获用户从WebBrowser中查看的内容。但是,创建的截图图像是网页的大小。例如,下面是BBC网站的(半尺寸)屏幕截图,黑色区域实际上保存为透明,但为了方便查看,我已将其填充为黑色。
我已经看到一些解决方案,其中使用新的WebBrowser实例来获取全屏快照。但是,我需要截图与用户在此时此刻查看的页面完全相同,就像Firefox中的全屏截图一样工作。
以下是生成上述图像的代码:
我已经看到一些解决方案,其中使用新的WebBrowser实例来获取全屏快照。但是,我需要截图与用户在此时此刻查看的页面完全相同,就像Firefox中的全屏截图一样工作。
以下是生成上述图像的代码:
private void button1_Click(object sender, EventArgs e)
{
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
int scrollWidth = 0;
int scrollHeight = 0;
scrollHeight = webBrowser1.Document.Body.ScrollRectangle.Height;
scrollWidth = webBrowser1.Document.Body.ScrollRectangle.Width;
webBrowser1.Size = new Size(scrollWidth, scrollHeight);
Bitmap bm = new Bitmap(scrollWidth, scrollHeight);
webBrowser1.DrawToBitmap(bm, new Rectangle(0, 0, bm.Width, bm.Height));
bm.Save(@"D:\Screenshots\test.png", ImageFormat.Png);
}
DrawToBitmap
可能会以当前Web浏览器控件的大小来呈现,但他想呈现整个页面。 - Dark FalconDrawToBitmap
上,因为有时它会生成一个纯白的页面。虽然我不能确定。 - TEK