基于Asp.net C#实现HTML转图片(网页快照)
发布时间:2020-12-16 07:34:16 所属栏目:asp.Net 来源:网络整理
导读:1.实现方法 ? ? //WebSiteThumbnail.cs文件,在BS项目中需要添加对System.Windows.Forms的引用 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.Web
1.实现方法 ? ? //WebSiteThumbnail.cs文件,在BS项目中需要添加对System.Windows.Forms的引用
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; using System.Threading; using System.Windows.Forms; namespace TestWebApp { public class WebSiteThumbnail { Bitmap m_Bitmap; string m_Url; int m_BrowserWidth,m_BrowserHeight,m_ThumbnailWidth,m_ThumbnailHeight; public WebSiteThumbnail(string Url,int BrowserWidth,int BrowserHeight,int ThumbnailWidth,int ThumbnailHeight) { m_Url = Url; m_BrowserHeight = BrowserHeight; m_BrowserWidth = BrowserWidth; m_ThumbnailWidth = ThumbnailWidth; m_ThumbnailHeight = ThumbnailHeight; } public static Bitmap GetWebSiteThumbnail(string Url,int ThumbnailHeight) { WebSiteThumbnail thumbnailGenerator = new WebSiteThumbnail(Url,BrowserWidth,BrowserHeight,ThumbnailWidth,ThumbnailHeight); return thumbnailGenerator.GenerateWebSiteThumbnailImage(); } 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); } } } 2.调用方法 //在任意网页中的Page_Load事件时,加入如下代码: protected void Page_Load(object sender,EventArgs e) { Bitmap m_Bitmap = WebSiteThumbnail.GetWebSiteThumbnail("http://www.google.cn",600,600); MemoryStream ms = new MemoryStream(); m_Bitmap.Save(ms,System.Drawing.Imaging.ImageFormat.Png);//JPG、GIF、PNG等均可 byte[] buff = ms.ToArray(); Response.BinaryWrite(buff); } ?from:http://blog.sina.com.cn/s/blog_42bea1a80101axwr.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- AutoMapper在asp.net core的使用
- asp.net-mvc-3 – Razor reseverd words
- 如何将ASP.NET用户和路由数据传递给JavaScript?
- Asp.net 代码设置兼容性视图
- asp.net – Chrome网络标签中的延迟测量
- asp.net-mvc-3 – 通过使用jQuery Script调用URL.Action生成
- 在ASP.NET MVC 3中为未经过身份验证的用户缓存主页
- 实体框架 – MVC3应用程序/服务层/存储库层/ POCO类/ EF4 –
- asp.net-web-api2 – 何时将刷新令牌传递给API
- asp.net-mvc-3 – 偶数和奇数表行与Razor
推荐文章
站长推荐
- asp.net-mvc – 在ASP.NET MVC 2中的RadioButton
- asp.net – 在Visual Studio中查找CSS类引用的快
- ASP.NET Core 2.0 依赖注入
- 如何使用Fluent Nhibernate中的Automapping进行O
- asp.net-mvc – 修改ActionFilter中的模型
- ASP.NET:以编程方式更改网站的文化
- 维护面板滚动位置部分回传ASP.NET
- asp.net-mvc-3 – MVC 4 – 如何关闭默认的Error
- asp.net-mvc-3 – 如何使用ViewBag属性从我的Vie
- 如何在Substitution控件中使用ASP.Net服务器控件
热点阅读