栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#实现在网页中根据url截图并输出到网页的方法

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#实现在网页中根据url截图并输出到网页的方法

本文实例讲述了C#实现在网页中根据url截图并输出到网页的方法。分享给大家供大家参考,具体如下:

网页截图是很多站点的一个小需求,这段代码实现的是如何根据url获得网页截图并输出到网页中。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;
using System.Windows.Forms;
using System.Drawing;
using System.IO;
/// 
/// This page show the way of generate a image in website
/// 
public partial class Default2 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    Bitmap m_Bitmap = WebSiteThumbnail.GetWebSiteThumbnail("http://www.google.cn", 600, 600, 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);
  }
}
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 BrowserWidth, int BrowserHeight, int ThumbnailWidth, 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);
  }
}

希望本文所述对大家C#程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/124522.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号