博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebSiteThumbnail 直接根据html生成图片
阅读量:4342 次
发布时间:2019-06-07

本文共 4287 字,大约阅读时间需要 14 分钟。

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;using System.Text;namespace WebApplication3{    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);        }    }}
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Drawing;using System.IO;using System.Text;namespace WebApplication3{    public partial class _Default : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            StringBuilder sbContent = new StringBuilder();            sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("
"); sbContent.Append("标题2"); sbContent.Append("
"); sbContent.Append("【环球时报综合报道】"); sbContent.Append("
"); sbContent.Append("时间" + DateTime.Now.ToString()); sbContent.Append("
"); 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(); } } }}

from:

转载于:https://www.cnblogs.com/ztf_yh/p/10715260.html

你可能感兴趣的文章
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>
阶段3 2.Spring_02.程序间耦合_4 曾经代码中的问题分析
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_4 ApplicationContext的三个实现类
查看>>
阶段3 2.Spring_02.程序间耦合_8 工厂模式解耦的升级版
查看>>
阶段3 2.Spring_03.Spring的 IOC 和 DI_6 spring中bean的细节之三种创建Bean对象的方式
查看>>
阶段3 2.Spring_04.Spring的常用注解_2 常用IOC注解按照作用分类
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_02.ssm整合之搭建环境
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_5、SpringBoot2.x的依赖默认Maven版本...
查看>>
阶段3 3.SpringMVC·_07.SSM整合案例_08.ssm整合之Spring整合MyBatis框架
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_12、SpringBoot2.x文件上传实战...
查看>>
小D课堂 - 零基础入门SpringBoot2.X到实战_第4节 Springboot2.0单元测试进阶实战和自定义异常处理_19、SpringBoot个性化启动banner设置debug日志...
查看>>