zoukankan      html  css  js  c++  java
  • C#实现网页截图功能

    //需要添加System.Drawing及System.Windows.Forms引用  
    using System;  
    using System.Drawing;  
    using System.Drawing.Drawing2D;  
    using System.Drawing.Imaging;  
    using System.Windows.Forms;  
     
     
    namespace 网页截图  
    {  
        class Program  
        {  
            [STAThread]  
            static void Main(string[] args)  
            {  
                string url = "http://www.yongfa365.com/";  
                MyLib.GetImage thumb = new MyLib.GetImage(url, 1024, 4000, 1024, 4000);  
                System.Drawing.Bitmap x = thumb.GetBitmap();  
                string FileName = DateTime.Now.ToString("yyyyMMddhhmmss");  
     
                x.Save(@"C:\" + FileName + ".jpg");  
                Console.WriteLine("成功");  
                Console.ReadKey();  
            }  
        }  
    }  
     
     
     
     
     
    namespace MyLib  
    {  
        public class GetImage  
        {  
            private int S_Height;  
            private int S_Width;  
            private int F_Height;  
            private int F_Width;  
            private string MyURL;  
     
            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 MyURL; }  
                set { MyURL = 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;  
            }  
        }  
     
        class WebPageBitmap  
        {  
            WebBrowser MyBrowser;  
            string URL;  
            int Height;  
            int Width;  
     
            public WebPageBitmap(string url, int width, int height)  
            {  
                this.Height = height;  
                this.Width = width;  
                this.URL = url;  
                MyBrowser = new WebBrowser();  
                MyBrowser.ScrollBarsEnabled = false;  
                MyBrowser.Size = new Size(this.Width, this.Height);  
            }  
     
            public void GetIt()  
            {  
                MyBrowser.Navigate(this.URL);  
                while (MyBrowser.ReadyState != WebBrowserReadyState.Complete)  
                {  
                    Application.DoEvents();  
                }  
            }  
     
            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;  
                }  
            }  
        }  
     
    }
  • 相关阅读:
    区块链是怎么运行的
    区块链技术到底是什么鬼(二)
    区块链技术到底是什么鬼(一)
    关于SetTimer间隔小于OmTimer执行时间的问题
    区块链
    浏览器原生 form 表单POST 数据的两种方式
    动态调用dll遇到的问题
    转-tcp建立和释放详解
    浏览器使用ActiveX控件
    C可变参数函数 实现
  • 原文地址:https://www.cnblogs.com/top5/p/1610041.html
Copyright © 2011-2022 走看看