欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

网页转换成图片

程序员文章站 2022-04-09 09:01:38
...

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SendFengmi
{
///
/// HTML 转化成图片打印
///
public class GetImage
{
private int S_Height;
private int S_Width;
private int F_Height;
private int F_Width;
private string HTML;

    public int ScreenHeight
    {
        get { return S_Height; }
        set { S_Height = value; }
    }

    public int ScreenWidth
    {
        get { return S_Width; }
        set { S_Width = value; }
    }

    public int ImageHeight
    {
        get { return F_Height; }
        set { F_Height = value; }
    }

    public int ImageWidth
    {
        get { return F_Width; }
        set { F_Width = value; }
    }

    public string WebSite
    {
        get { return HTML; }
        set { HTML = value; }
    }

    public GetImage(string WebSite, int ScreenWidth, int ScreenHeight, int ImageWidth, int ImageHeight)
    {
        this.WebSite = WebSite;
        this.ScreenWidth = ScreenWidth;
        this.ScreenHeight = ScreenHeight;
        this.ImageHeight = ImageHeight;
        this.ImageWidth = ImageWidth;
    }

    public Bitmap GetBitmap()
    {
        WebPageBitmap Shot = new WebPageBitmap(this.WebSite, this.ScreenWidth, this.ScreenHeight);
        Shot.GetIt();
        Bitmap Pic = Shot.DrawBitmap(this.ImageHeight, this.ImageWidth);
        return Pic;
    }
}

public class WebPageBitmap
{
    WebBrowser MyBrowser;
    string HTML;
    int Height;
    int Width;

    public WebPageBitmap(string html, int width, int height)
    {
        this.Height = height;
        this.Width = width;
        this.HTML = html;
        MyBrowser = new WebBrowser();
        MyBrowser.ScrollBarsEnabled = false;
        MyBrowser.Size = new Size(this.Width, this.Height);
    }

    public void GetIt()
    {
        MyBrowser.DocumentText = HTML;
        //也可用rul
        //MyBrowser.Navigate(@"C:\Documents and Settings\Administrator\桌面\1.html");
        while (MyBrowser.ReadyState != WebBrowserReadyState.Complete)
        {
            Application.DoEvents();
            System.Threading.Thread.Sleep(100);
        }
    }

    public Bitmap DrawBitmap(int theight, int twidth)
    {
        Bitmap myBitmap = new Bitmap(Width, Height);
        Rectangle DrawRect = new Rectangle(0, 0, Width, Height);
        MyBrowser.DrawToBitmap(myBitmap, DrawRect);
        System.Drawing.Image imgOutput = myBitmap;
        System.Drawing.Image oThumbNail = new Bitmap(twidth, theight, imgOutput.PixelFormat);
        Graphics g = Graphics.FromImage(oThumbNail);
        g.CompositingQuality = CompositingQuality.HighSpeed;
        g.SmoothingMode = SmoothingMode.HighSpeed;
        g.InterpolationMode = InterpolationMode.HighQualityBilinear;
        Rectangle oRectangle = new Rectangle(0, 0, twidth, theight);
        g.DrawImage(imgOutput, oRectangle);
        try
        {
            return (Bitmap)oThumbNail;
        }
        catch (Exception ex)
        {
            return null;
        }
        finally
        {
            imgOutput.Dispose();
            imgOutput = null;
            MyBrowser.Dispose();
            MyBrowser = null;
        }
    }
}

}

相关标签: HTML转图片