zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    }
  • 相关阅读:
    Servlet文件上传下载
    通过jquery将多选框变单选框
    Java 浮点数精度控制
    JS实现点击table中任意元素选中
    SpringMVC-时间类型转换
    SpringMVC--提交表单
    路径 专题
    防盗链
    Request
    RequestResponse简介
  • 原文地址:https://www.cnblogs.com/Fred1987/p/11116234.html
Copyright © 2011-2022 走看看