博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网页快照
阅读量:5127 次
发布时间:2019-06-13

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

C#生成网站网页快照,Html转成图片
2012-04-09 22:29

HtmlToImg.cs

 

using System;

using System.Drawing;

using System.Threading;

using System.Windows.Forms;

/// <summary>

/// 生成网页快照

/// </summary>

publicclassHtmlToImg

{

    Bitmap m_Bitmap;

    string m_Url;

    int m_BrowserWidth, m_BrowserHeight, m_ThumbnailWidth, m_ThumbnailHeight;

    public HtmlToImg(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;

    }

    publicstaticBitmap GetHtmlToImg(string Url, int BrowserWidth, int BrowserHeight, int ThumbnailWidth, int ThumbnailHeight)

    {

        HtmlToImg thumbnailGenerator = newHtmlToImg(Url, BrowserWidth, BrowserHeight, ThumbnailWidth, ThumbnailHeight);

        return thumbnailGenerator.GenerateHtmlToImgImage();

    }

    publicBitmap GenerateHtmlToImgImage()

    {

        Thread m_thread = newThread(newThreadStart(_GenerateHtmlToImgImage));

        m_thread.SetApartmentState(ApartmentState.STA);

        m_thread.Start();

        m_thread.Join();

        return m_Bitmap;

    }

    privatevoid _GenerateHtmlToImgImage()

    {

        WebBrowser m_WebBrowser = newWebBrowser();

        m_WebBrowser.ScrollBarsEnabled = false;

        m_WebBrowser.Navigate(m_Url);

        m_WebBrowser.DocumentCompleted += newWebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);

        while (m_WebBrowser.ReadyState != WebBrowserReadyState.Complete)

            Application.DoEvents();

搜企业(www.soqiye.cn)

        m_WebBrowser.Dispose();

    }

    privatevoid WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

    {

        WebBrowser m_WebBrowser = (WebBrowser)sender;

        m_WebBrowser.ClientSize = newSize(this.m_BrowserWidth, this.m_BrowserHeight);

        m_WebBrowser.ScrollBarsEnabled = false;

        m_Bitmap = newBitmap(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);

    }

}

 

 

 

调用方法:

         Bitmap bmp = HtmlToImg.GetHtmlToImg("http://www.baidu.com/", 800, 600, 800, 600);

        MemoryStream stream = newMemoryStream();

        bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);

        byte[] buff = stream.ToArray();

 

        //直接显示图片

        //Response.ContentType = "image/Jpeg";

        //Response.BinaryWrite(buff);

        //Response.End();

 

        //保存图片

        FileStream fs = newFileStream(Server.MapPath(DateTime.Now.Date.ToShortDateString() + ".jpg"), FileMode.Create);

        stream.WriteTo(fs);

        stream.Close();

        fs.Close();

转载于:https://www.cnblogs.com/songtzu/archive/2012/04/26/2471871.html

你可能感兴趣的文章
python3(1)
查看>>
简单聊聊智能硬件的固件测试
查看>>
pat1042. Shuffling Machine (20)
查看>>
霓虹灯的效果
查看>>
学习进度六
查看>>
Spring Boot干货系列:(七)默认日志logback配置解析
查看>>
PHP - 判断php是否对表单数据内的特殊字符自动转义
查看>>
简易商城 [ html + css ] 练习
查看>>
Linux 下Makefile教程
查看>>
[转]MSP430另一种UART实现
查看>>
myeclipse部署多个web工程
查看>>
tcp_协议基础
查看>>
layui弹窗 之 iframe关闭
查看>>
【BZOJ2565】最长双回文串 Manacher
查看>>
There is no PasswordEncoder mapped for the id "null"
查看>>
windows10 conda python多版本切换
查看>>
Linux配置日志服务器
查看>>
P6 EPPM 16.1 安装和配置指南 1
查看>>
C语言:九九乘法表打印
查看>>
Java_Activiti5_菜鸟也来学Activiti5工作流_之JUnit单元测试(四)
查看>>