html转换成asp图片大小问题,c# – 使用asp.net中的webbrowser将html页面转换为图像花费太多时间生成重型html页面的图像...

我有一个问题,当我使用webbrowser将html页面转换为图像时,它需要花费太多时间来处理繁重的html页面.

它适用于小型HTML页面,但是当html页面很重,那么它就会陷入其中

Application.DoEvent();功能

WebBrowser m_WebBrowser = new WebBrowser();

m_WebBrowser.ScriptErrorsSuppressed = true;

m_WebBrowser.ScrollBarsEnabled = false;

m_WebBrowser.Navigate(m_Url);

m_WebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);

while (m_WebBrowser.ReadyState != WebBrowserReadyState.Complete)

**Application.DoEvents();**

m_WebBrowser.Dispose();

在创建HTML页面之后,我们将html页面的URL传递给此GetWebSiteThumbnail()函数.

码:

public class WebsiteThumbnailImageGenerator

{

public static Bitmap GetWebSiteThumbnail(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)

{

WebsiteThumbnailImage thumbnailGenerator = new WebsiteThumbnailImage(Url, BrowserWidth, BrowserHeight, ThumbnailWidth, ThumbnailHeight);

return thumbnailGenerator.GenerateWebSiteThumbnailImage();

}

private class WebsiteThumbnailImage

{

public WebsiteThumbnailImage(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)

{

this.m_Url = Url;

this.m_BrowserWidth = BrowserWidth;

this.m_BrowserHeight = BrowserHeight;

this.m_ThumbnailHeight = ThumbnailHeight;

this.m_ThumbnailWidth = ThumbnailWidth;

}

private string m_Url = null;

public string Url

{

get

{

return m_Url;

}

set

{

m_Url = value;

}

}

private Bitmap m_Bitmap = null;

public Bitmap ThumbnailImage

{

get

{

return m_Bitmap;

}

}

private int m_ThumbnailWidth;

public int ThumbnailWidth

{

get

{

return m_ThumbnailWidth;

}

set

{

m_ThumbnailWidth = value;

}

}

private int m_ThumbnailHeight;

public int ThumbnailHeight

{

get

{

return m_ThumbnailHeight;

}

set

{

m_ThumbnailHeight = value;

}

}

private int m_BrowserWidth;

public int BrowserWidth

{

get

{

return m_BrowserWidth;

}

set

{

m_BrowserWidth = value;

}

}

private int m_BrowserHeight;

public int BrowserHeight

{

get

{

return m_BrowserHeight;

}

set

{

m_BrowserHeight = value;

}

}

public Bitmap GenerateWebSiteThumbnailImage()

{

Thread m_thread = new Thread(new ThreadStart(_GenerateWebSiteThumbnailImage));

m_thread.SetApartmentState(ApartmentState.STA);

m_thread.Start();

m_thread.Join();

return m_Bitmap;

}

private void _GenerateWebSiteThumbnailImage()

{

WebBrowser m_WebBrowser = new WebBrowser();

m_WebBrowser.ScrollBarsEnabled = false;

m_WebBrowser.Navigate(m_Url);

m_WebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);

while (m_WebBrowser.ReadyState != WebBrowserReadyState.Complete)

Application.DoEvents();

m_WebBrowser.Dispose();

}

private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

{

WebBrowser m_WebBrowser = (WebBrowser)sender;

m_WebBrowser.ClientSize = new Size(this.m_BrowserWidth, this.m_BrowserHeight);

m_WebBrowser.ScrollBarsEnabled = false;

m_Bitmap = new Bitmap(m_WebBrowser.Bounds.Width, m_WebBrowser.Bounds.Height);

m_WebBrowser.BringToFront();

m_WebBrowser.DrawToBitmap(m_Bitmap, m_WebBrowser.Bounds);

m_Bitmap = (Bitmap)m_Bitmap.GetThumbnailImage(m_ThumbnailWidth, m_ThumbnailHeight, null, IntPtr.Zero);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>