将WebBrowser.Document转换为位图?是否可以将WebBrowser.Document绘制到位图?基本上截取WebBrowser控件的屏幕截图(注意,这是一个不在表单上但仅在代码中的WebBrowser)。WebBrowserw=newWebBrowser();w。文档="你好世界。";w。文档。绘制位图???谢谢!http://www.bryancook.net/2006/03/screen-capture-for-invisible-windows.html和这里:http://www.codeproject.com/KB/graphics/screen_capturing.aspx我相信你应该得到处理WebBrowser控件并将其内容保存为这些链接中建议的图像。我使用以下代码捕捉WebBrowser控件中加载的网页的画面截图:classNativeMethods{[ComImport][Guid("0000010D-0000-0000-C000-000000000046")][InterfaceTypevoidIsInterfaceIViewType.Interface([MarshalAs(UnmanagedType.U4)]uintdwAspect,intlindex,IntPtrpvAspect,[In]IntPtrptd,IntPtrhdcTargetDev,IntPtrhdcDraw,[MarshalAs(UnmanagedType.Struct)]refRECTlprcBounds,[In]IntPtrlprcWBounds,IntPtrpfnContinuerpfn,[MarshalAs(UnmanagedType.U4)]uintdwContinue);}[StructLayout(LayoutKind.Sequential,Pack=4)]structRECT{publicintLeft;公共诠释顶部;publicint对;公共诠释底部;}publicstaticvoidGetImage(objectobj,Imagedestination,ColorbackgroundColor){using(Graphicsgraphics=Graphics.FromImage(destination)){IntPtrdeviceContextHandle=IntPtr.Zero;RECT矩形=新的RECT();rectangle.Right=destination.Width;rectangle.Bottom=destination.Height;图形。清除(背景颜色);尝试{deviceContextHandle=graphics.GetHdc();IViewObjectviewObject=objasIViewObject;viewObject.Draw(1,-1,IntPtr.Zero,IntPtr.Zero,IntPtr.Zero,deviceContextHandle,refrectangle,IntPtr.Zero,IntPtr.Zero,0);}finally{if(deviceContextHandle!=IntPtr.Zero){graphics.ReleaseHdc(deviceContextHandle);}}}}}例子:以上是C#学习教程:WebBrowser.Document转位图?分享的所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注—Bitmapscreenshot=newBitmap(1024,768);NativeMethods.GetImage(webBrowser.ActiveXInstance,screenshot,Color.White);publicvoidHTMLScreenShot(){WebBrowserwb=newWebBrowser();wb.DocumentCompleted+=newWebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);wb.Size=newSize(800,600);//添加html作为字符串wb.Navigate("about:blank");wb.Document.Write("HellowWorld!");//从网站添加html//wb.Navigate("http://myurl.com");}voidwb_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgse){WebBrowserwb=sender作为网络浏览器;使用(Bitmapbitmap=newBitmap(wb.Width,wb.Height)){Rectanglebounds=newRectangle(newPoint(0,0),wb.Size);wb.DrawToBitmap(位图,边界);bitmap.Save("C:WebsiteScreenshot.png");}}////如果你想从现有的webBrowser控件中截取快照//privatevoidbutton1_Click(objectsender,EventArgse){using(FileDialogfd=newSaveFileDialog()){fd.Filter="Image(*.png)|*.png";如果(fd.ShowDialog()==System.Windows.Forms.DialogResult.OK){newWebPageSnap(webBrowser1.Url.ToString(),fd.FileName);//可能需要3或4秒才能保存,因为它必须再次加载。}}}//或者如果你想拍照而不显示//privatevoidbutton2_Click(objectsender,EventArgse){using(FileDialogfd=newSaveFileDialog()){fd.Filter="Image(*.png)|*.png";if(fd.ShowDialog()==System.Windows.Forms.DialogResult.OK){stringurl="http://www.google.com";//或者url=textBox1.Text;新的WebPageSnap(url,fd.文件名);}}}classWebPageSnap{WebBrowserwb;字符串输出文件;publicWebPageSnap(stringurl,stringoutputFile){wb=newWebBrowser();wb.ProgressChanged+=wb_ProgressChanged;输出文件=输出文件;wb.ScriptErrorsSuppressed=true;wb.ScrollBarsEnabled=false;wb.Navigate(url);}voidwb_ProgressChanged(objectsender,WebBrowserProgressChangedEventArgse){if(e.CurrentProgress==e.MaximumProgress){wb.ProgressChanged-=wb_ProgressChanged;尝试{int滚动宽度=0滚动高度=0;scrollHeight=wb.Document.Body.ScrollRectangle.Height;scrollWidth=wb.Document.Body.ScrollRectangle.Width;wb.Size=newSize(scrollWidth,scrollHeight);位图bitmap=newBitmap(wb.Width,wb.Height);for(intXcount=0;Xcount本文整理自网络,不代表立场,如涉及侵权,请点右联系管理员删除,如需转载请注明出处:
