如何使用WebBrowser控件上的DrawToBitmap修复不透明度错误?根据以下链接和我的控制台应用程序,该方法DrawToBitmap不考虑不透明性。证明链接:http : //social.msdn.microsoft.com/Forums/vstudio/en-US/e9704309-0c52-442d-80e0-2f8393dcd313/webbrowser-opacity-problem-我的HTML代码:http://fiddle.jshell.net/L37TC/<div id="fader" style="background-color: #ff0000">ffff</div><div style="background-color: blue; opacity:0;filter:alpha(opacity=0);">HIDDEN TEXT!</div>SomeText我的C#控制台代码:var bmp = new Bitmap(640,480, PixelFormat::Format32bppArgb)var web = (System.Windows.Forms.Control)sender;web.DrawToBitmap(bmp, Rectangle(0, 0, 640,480));所以我在寻找替代.NET内置的解决方案(没有CEF,Awesomium,或任何扩展请)只是一个内置的.NET的功能来修复bug或替代解决方案采取了网页URL的屏幕截图在我的控制台应用。如果我使WebBrowser客户端对窗口可见并且使用CopyFromScreen不透明性,则该窗口会受到尊重并且HIDDEN TEXT没有显示出来,那么我怎么不想使WebBrowser桌面屏幕对窗口可见。我正在寻找一种内置解决方案,以从问题中的发布网址中获取屏幕快照,而无需HIDDEN TEXT。换句话说,是尊重opacity的解决方案。EDIT1:我Bitmap class(.NET类不是BMP格式)中的所有像素的alpha值为255。因此问题不在于文件格式。我尝试了PNG和其他任何.NET支持的格式。完整的源代码(控制台模板,需要添加对System.Drawing和的引用System.Windows.Formsclass Program{
static System.Windows.Forms.WebBrowser w = new System.Windows.Forms.WebBrowser();
[STAThread]
static void Main(string[] args)
{
w.Navigate("http://fiddle.jshell.net/L37TC/show/");
w.DocumentCompleted += w_DocumentCompleted;
System.Windows.Forms.Application.Run();
while (true) Console.Read();
}
1 回答
- 1 回答
- 0 关注
- 439 浏览
添加回答
举报
0/150
提交
取消