我一直在在单独的 STA 线程中运行的 asp.net 页面中使用 WebBrowser.DrawtoBitmap() 来将网页捕获为图像。但我发现我一直在为少数几个网站获得空白图像。我知道该方法不受“官方”支持,但如果有人可以为我提供任何理由或解决这些空白图像问题的方法,那就太好了。
问问题
13517 次
3 回答
5
DrawToBitmap
有局限性,并不总是按预期工作。尝试使用本机 GDI+
这是示例
于 2011-03-18T12:17:20.850 回答
2
这个问题可以通过将焦点放在控件上来解决,所以它会正确绘制。
这是一个选项,但控件必须是可见的:WebBrowser.DrawToBitmap() 还是其他方法?
据我所知,这个问题是当您单击 webbrowsercontrol 时它已修复。因此,执行此程序化应该可以解决问题:)
我没有对此进行测试,但理论上我认为它可以在 asp.net 应用程序中启动 Windows 窗体。参考 system.windows.forms 和绘图,然后在单独的线程上使用 application.run。注意:我正在使用手机,因此无法对其进行测试,但它可能确实有效。
于 2011-03-18T12:16:48.760 回答
2
你不是用 Flash 打页面吗?
我必须这样做,才能让我的WebBrowser
控制工作:
using System;
using System.Windows.Forms;
public class WebBrowserEx : WebBrowser
{
public WebBrowserEx()
{
}
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case 0x021:
case 0x201:
case 0x204:
case 0x207:
base.DefWndProc(ref m);
return;
}
base.WndProc(ref m);
}
}
我真的不知道我在做什么,我只是在某个地方找到了它,它是为了启用 Flash。但我认为从那以后我并没有遇到太多问题。
我用它来做截图。我在一个单独的 STA 线程上运行它(作为 Windows 服务 - 没有可见的内容)。
于 2011-03-18T12:28:36.857 回答