• 网页照相机代码及分析


    此代码出自CSDN
    http://download.csdn.net/source/1383175
    我对代码进行了一些简单的分析
    如下:

            public Form1()
            {
                InitializeComponent();
                //先定义控件的DocumentCompleted事件,网页加载完毕
                //System.Windows.Forms.WebBrowser
                this.webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
            }
            /// <summary>
            /// 委托事件,网页加载完就触发
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                GetImage();
            }
            void GetImage()
            {
                if (webBrowser1.Document == null) return;
                try
                {
                    //得到网页的高度
                    int scrollHeight = webBrowser1.Document.Body.ScrollRectangle.Height;
                    //得到网页的宽度
                    int scrollWidth = webBrowser1.Document.Body.ScrollRectangle.Width;
                    //重新设置控件的大小
                    webBrowser1.Size = new Size(scrollWidth, scrollHeight);
                    //创造一个空图片
                    Bitmap bm = new Bitmap(scrollWidth, scrollHeight);
                    //把控件画到这个图片中去
                    webBrowser1.DrawToBitmap(bm, new Rectangle(0, 0, bm.Width, bm.Height));
                    //制造一个文件名
                    string saveAsName;
                    saveAsName = Regex.Replace(txtURL.Text, @"(\\|\/|\:|\*|\?|\""|\<|\>|\|)?", "");
                    //按这个文件名保存图片
                    bm.Save(saveAsName + ".png", System.Drawing.Imaging.ImageFormat.Png);
                    //释放这个图片
                    bm.Dispose();
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message, "保存失败", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                finally
                {
                }
                btnOK.Enabled = true;
            }
            private void buttonCapture_Click(object sender, EventArgs e)
            {
                //开始加载一个网页,加载完了就执行委托事件
                webBrowser1.Navigate(txtURL.Text);
                btnOK.Enabled = false;
            }

    如需下载请去文上所提到的连接中下载

  • 相关阅读:
    里氏替换原则
    java简单选择排序
    通过登录窗体,登录不同的窗体,同时关闭登录窗体
    关于SQL中数据类型(float和real)和 .NET Framework 中数据类型(float和double)的问题
    129有确定性的有穷自动机
    大数据概述
    组合数据类型练习
    词法分析
    编译原理
    算法分析实验报告
  • 原文地址:https://www.cnblogs.com/liulun/p/1536187.html
Copyright © 2020-2023  润新知