用软件做模板下载网站,嘉上营销,怎么做刷东西网站,岳阳公司网站制作在 .NET 平台上#xff0c;我们有多种方式可以将一段 HTML 文本转换为一张图片#xff1a;HTML Renderer、SelectPdf 、Aspose.Html等。在 WinForm 程序中#xff0c;每一个 System.Windows.Forms.Control 的派生类型均包含一个名为 DrawToBitmap 的方法#xff0c;该方法可…在 .NET 平台上我们有多种方式可以将一段 HTML 文本转换为一张图片HTML Renderer、SelectPdf 、Aspose.Html等。在 WinForm 程序中每一个 System.Windows.Forms.Control 的派生类型均包含一个名为 DrawToBitmap 的方法该方法可以将控件绘制到一张图片上。WebBrowser 具备显示 HTML 的功能又因为其从 Control 类型派生所以包含 DrawToBitmap 方法。我们只需将要在 WebBrowser 上加载要展示的 HTML 并在其 DocumentCompleted 事件中绘制图片即可public static async Task HtmlToImage(String html, int width 1024, int height 768){var taskCompletionSource new TaskCompletionSource();var thread new Thread(() {using var browser new WebBrowser{Width width,Height height,ScrollBarsEnabled false};browser.DocumentCompleted (s, e) {var b s as WebBrowser;if (b null){return;}var bmp new Bitmap(b.Width, b.Height);b.DrawToBitmap(bmp, new Rectangle(0, 0, b.Width, b.Height));taskCompletionSource.SetResult(bmp);Application.ExitThread();};browser.DocumentText html;Application.Run();});thread.SetApartmentState(ApartmentState.STA);thread.Start();return await taskCompletionSource.Task;}以上代码参考了Stack Overflow笔者将其改造为异步方法并增加了必要的释放功能。在 LINQPad 中测试效果如下该方式的优点简单易用。支持最新的 .NET Core 环境。无需引用第三方类库没有版权和安全性风险安全且免费。支持从互联网上加载内容。该方式的缺点虽然支持 .NET Core 但以上代码不能跨平台使用。WebBrowser 控件基于 IE 浏览器并受宿主操作系统影响要求被呈现的网页具备较高的兼容性。使用 IE8 版本进行渲染笔者在实际工作中使用到了部分 CSS3 属性默认情况下 WebBrowser 使用低版本的 IE 浏览器渲染网页这会导致部分网页效果不生效比如隔行变色效果。除了修改注册表我们仍可以通过在网页中加入 meta 标签的方式告知 WebBrowser 使用高版本的 IE 浏览器进行渲染仅需将以下代码复制至 HTML 的 head 标签内即可以上就是C# 使用 WebBrowser 实现 HTML 转图片功能的实例代码的详细内容更多关于C# WebBrowser 实现 HTML 转图片的资料请关注脚本之家其它相关文章