• 网页照相机代码及分析


    此代码出自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;
            }

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

  • 相关阅读:
    MT【111】画图估计
    MT【110】巧设法向量解决距离问题
    a++为啥不能用作左值
    qt之正则表达式
    QtWebkit中如何将网页内容转为图片
    数字图像去雾快速算法
    基于AdaBoost的人脸检测
    谈谈自动瘦脸和自动眼睛放大算法
    QT_opengl_gluPerspective没有定义的处理方法
    OpenGL框架+QT版
  • 原文地址:https://www.cnblogs.com/liulun/p/1536187.html
Copyright © 2020-2023  润新知