C#获取网页内容截取成图片

WebSiteThumbnail 直接根据html生成图片

public class WebSiteThumbnail
    {
        Bitmap m_Bitmap;
        string m_Url;
        string m_html = string.Empty;

        public WebSiteThumbnail(string Url, string Html)
        {
            m_Url = Url;
            m_html = Html;
        }

        ///
        /// 生成缩略图
        ///
        public static Bitmap GetWebSiteThumbnail(string Html)
        {
            WebSiteThumbnail thumbnailGenerator = new WebSiteThumbnail("", Html);
        ReTest:
            Bitmap m_Bitmap = thumbnailGenerator.GenerateWebSiteThumbnailImage();
            if (m_Bitmap == null)
            {
                goto ReTest;
            }
            return m_Bitmap;
        }

        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.DocumentText = m_html;
            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.ScrollBarsEnabled = false;
            m_WebBrowser.Width = m_WebBrowser.Document.Body.ScrollRectangle.Width; ;
            m_WebBrowser.Height = m_WebBrowser.Document.Body.ScrollRectangle.Height;
            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_WebBrowser.Bounds.Width, m_WebBrowser.Bounds.Height, null, IntPtr.Zero);
        }
     }

方法使用

Bitmap m_Bitmap = WebSiteThumbnail.GetWebSiteThumbnail(sbContent.ToString());
  if (m_Bitmap != null)
     {
         MemoryStream ms = new MemoryStream();
         m_Bitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
         byte[] buff = ms.ToArray();
         ms.Dispose();
         ms.Close();
         m_Bitmap.Dispose();

         Response.ContentType = "image/jpg";
         Response.BinaryWrite(buff);
         Response.End();
     }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值