• C#网页 截图


    using System.IO;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Threading;
    using System.Windows.Forms;
    using System;
    
    namespace ConsoleApp1
    {
        public  class CaptureWebPage
        {
    
            public byte[] picbytes; 
    
            public CaptureWebPage(string url)
            {
                string bmpPath =DateTime.Now.ToString("yyyyMMddHHmmssffff")+".bmp";
                Bitmap bmp = new Bitmap(1000,10000);
                
                makepicture(url);
                bmp = ByteToImage(picbytes);
                bmp.Save(bmpPath);
            }
            private void makepicture(string url)
            {
                Thread thread = new Thread(delegate ()
                {
                    using (WebBrowser browser = new WebBrowser())
                    {
                        browser.ScrollBarsEnabled = true;
                        browser.AllowNavigation = true;
                        browser.Navigate(url);
                        browser.Width = 1024;
                        browser.Height =10000;
                        browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(DocumentCompleted);
                        while (browser.ReadyState != WebBrowserReadyState.Complete)
                        {
                            System.Windows.Forms.Application.DoEvents();
                        }
    
                    }
                });
                thread.SetApartmentState(ApartmentState.STA);
                thread.Start();
                thread.Join();
            }
    
            private void DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                WebBrowser browser = sender as WebBrowser;
                using (Bitmap bitmap = new Bitmap(browser.Width, browser.Height))
                {
                    browser.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, browser.Width, browser.Height));
                    using (MemoryStream stream = new MemoryStream())
                    {
                        bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
                        byte[] bytes = stream.ToArray();
                        picbytes = bytes;
    
                    }
                }
            }
    
            public static Bitmap ByteToImage(byte[] blob)
            {
                MemoryStream mStream = new MemoryStream();
                byte[] pData = blob;
                mStream.Write(pData, 0, Convert.ToInt32(pData.Length));
                Bitmap bm = new Bitmap(mStream, false);
                mStream.Dispose();
                return bm;
            }
        }
    }
  • 相关阅读:
    CrawlSpiders
    从抓取Tencent中学习Scrapy
    对象返回规范的url的两种方式的两种方式
    多对多关系的额外字段
    Django定时任务
    Scripy学习(一)
    Django开发博客一(搭建模型和准备数据)
    求并集
    求子集、交集
    java数学函数Math类中常用的方法
  • 原文地址:https://www.cnblogs.com/Fred1987/p/11116234.html
Copyright © 2020-2023  润新知