使用托管代码将.net html转换为图像
我有一个将HTML转换为图像并发回的服务 目前我正在使用WebBrowser控件来实现这一点。但这还远远不够完美。在高峰时间,服务崩溃或提供空引用异常。而且它在内存方面也不是轻量级的。我正在寻找此工作的轻量级托管选项 请让我知道任何开源项目或任何其他管理控制将做这项工作 更新:使用托管代码将.net html转换为图像,.net,html,image,service,screenshot,.net,Html,Image,Service,Screenshot,我有一个将HTML转换为图像并发回的服务 目前我正在使用WebBrowser控件来实现这一点。但这还远远不够完美。在高峰时间,服务崩溃或提供空引用异常。而且它在内存方面也不是轻量级的。我正在寻找此工作的轻量级托管选项 请让我知道任何开源项目或任何其他管理控制将做这项工作 更新: 我有非常简单的HTML来呈现。它只有表格、段落和样式表的字体和背景色。没有Javascript、元素浮动或其他复杂的布局。试试。试试。我最终决定使用WebBrowser控件,因为在我这边没有那么有效的HTML可用 我应该
我有非常简单的HTML来呈现。它只有表格、段落和样式表的字体和背景色。没有Javascript、元素浮动或其他复杂的布局。试试。试试。我最终决定使用WebBrowser控件,因为在我这边没有那么有效的HTML可用 我应该提到下面的帖子,它应该可以解决其他得到有效HTML的人的问题。它很少提到开源和付费控件
我最终决定使用WebBrowser控件,因为在我这边没有那么有效的HTML可用 我应该提到下面的帖子,它应该可以解决其他得到有效HTML的人的问题。它很少提到开源和付费控件 你可以试试 你可以试试
你知道你在要求另一个浏览器,对吗?所有涉及的复杂性和不兼容性。检查问题以获取更新。不确定我是否要求另一个浏览器,但另一个HTML渲染器。是的,但HTML渲染器=90%的浏览器折扣,99.9%的不兼容性折扣。无论如何,你不会发现任何简单或小的东西。但是你可能比基于IE的网络控制做得更好。你确实意识到你在要求另一个浏览器,对吗?所有涉及的复杂性和不兼容性。检查问题以获取更新。不确定我是否要求另一个浏览器,但另一个HTML渲染器。是的,但HTML渲染器=90%的浏览器折扣,99.9%的不兼容性折扣。无论如何,你不会发现任何简单或小的东西。但是你可能比基于IE的WebControl做得更好。我相信你指的是WebKit浏览器控件。它看起来类似于带有事件的Webbrowser控件。我在寻找类似object.GetImage(HTML)的东西。如果你说的是其他控件,请告诉我。我相信你指的是WebKit浏览器控件。它看起来类似于带有事件的Webbrowser控件。我在寻找类似object.GetImage(HTML)的东西。如果您正在谈论其他控件,请告诉我。当前的Awesomium版本有。当前的Awesomium版本有。
using System;
using AwesomiumSharp;
using System.Threading;
using System.Diagnostics;
namespace AwesomiumSharpBasic
{
class Program
{
static void Main( string[] args )
{
// Display some informative message. Loading the page
// may take a while depending on your internet
// connection speed.
Console.WriteLine( "Getting a 1024x768 snapshot" +
"of http://www.awesomium.com ..." );
// Create a WebView.
// WebView implements IDisposable. You can dispose and
// destroy the view by calling WebView.Close().
// Here we demonstrate wrapping it in a using statement.
using ( WebView webView =
WebCore.CreateWebView( 1024, 768 ) )
{
// Variable used to announce
// that the page has loaded.
bool finishedLoading = false;
// Load a page in the view.
webView.LoadURL( "http://www.awesomium.com" );
// Handle the LoadCompleted event to monitor
// page loading.
webView.LoadCompleted += ( sender, e ) =>
{
finishedLoading = true;
};
// Wait for the page to load.
while ( !finishedLoading )
{
Thread.Sleep( 100 );
// WebCore provides an Auto-Update feature
// for UI applications. A console application
// has no UI and no synchronization context
// so we need to manually call Update here.
WebCore.Update();
}
// Render to a pixel buffer and save the buffer
// to a .png image.
webView.Render().SaveToPNG( "result.png", true );
}
// Start the application associated with .png files
// and display the file.
Process.Start( "result.png" );
// Shut down Awesomium before exiting.
WebCore.Shutdown();
}
}
}