如何使用 CefSharp 从 html 字符串创建位图?
How to create a bitmap from html string using CefSharp?
我需要使用 CefSharp.OffScreen.ChromiumWebBrowser.
从 html 字符串创建位图
var browser = new CefSharp.OffScreen.ChromiumWebBrowser(htmlString);
// what to do?
var bitmap = browser.Bitmap;
我需要做什么才能获得位图?
将 URL 而不是 html 字符串传递给 ChromiumWebBrowser 并等待浏览器完成加载 html 文件可解决此问题:
var browser = new CefSharp.OffScreen.ChromiumWebBrowser(htmlURL);
// wait the browser to finish loading the html file
using (var waitHandle = new System.Threading.AutoResetEvent(false))
{
EventHandler<LoadingStateChangedEventArgs> loadingHandler = null;
loadingHandler = (sender, e) =>
{
if (!e.IsLoading)
{
if (browser != null)
{
browser.LoadingStateChanged -= loadingHandler;
}
waitHandle.Set();
}
};
browser.LoadingStateChanged += loadingHandler;
waitHandle.WaitOne();
}
var bitmap = browser.Bitmap; // bitmap not null
我需要使用 CefSharp.OffScreen.ChromiumWebBrowser.
从 html 字符串创建位图var browser = new CefSharp.OffScreen.ChromiumWebBrowser(htmlString);
// what to do?
var bitmap = browser.Bitmap;
我需要做什么才能获得位图?
将 URL 而不是 html 字符串传递给 ChromiumWebBrowser 并等待浏览器完成加载 html 文件可解决此问题:
var browser = new CefSharp.OffScreen.ChromiumWebBrowser(htmlURL);
// wait the browser to finish loading the html file
using (var waitHandle = new System.Threading.AutoResetEvent(false))
{
EventHandler<LoadingStateChangedEventArgs> loadingHandler = null;
loadingHandler = (sender, e) =>
{
if (!e.IsLoading)
{
if (browser != null)
{
browser.LoadingStateChanged -= loadingHandler;
}
waitHandle.Set();
}
};
browser.LoadingStateChanged += loadingHandler;
waitHandle.WaitOne();
}
var bitmap = browser.Bitmap; // bitmap not null