为了账号安全,请及时绑定邮箱和手机立即绑定

WebBrowser实现网页截图

标签:
C#

引用

using System.Drawing;
using System.Threading;
using System.Windows.Forms;

代码

public class WebsiteToImage
{
        private string m_Url;
        private string m_FileName = string.Empty;

        public WebsiteToImage(string url, string fileName)
        {
            m_Url = url;
            m_FileName = fileName;
        }

        private void _Generate()
        {
            var browser = new WebBrowser {ScrollBarsEnabled = false};
            browser.Navigate(m_Url);
            browser.DocumentCompleted += WebBrowser_DocumentCompleted;

            while (browser.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }

            browser.Dispose();
        }

        private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            var browser = (WebBrowser) sender;browser.ClientSize = new Size(browser.Document.Body.ScrollRectangle.Width,browser.Document.Body.ScrollRectangle.Bottom);
            browser.ScrollBarsEnabled = false;

            if (browser.ReadyState == WebBrowserReadyState.Complete)
            {
                 // 获取网页高度和宽度,也可以自己设置
                 int height = browser.Document.Body.ScrollRectangle.Height;
                 int width = browser.Document.Body.ScrollRectangle.Width;

                 // 调节webBrowser的高度和宽度
                 browser.Height = height;
                 browser.Width = width;

                 Bitmap bitmap = new Bitmap(width, height);  // 创建高度和宽度与网页相同的图片
                 Rectangle rectangle = new Rectangle(0, 0, width, height);  // 绘图区域
                 browser.DrawToBitmap(bitmap, rectangle);  // 截图

                 bitmap.Save(m_FileName);  // 保存图片
            }
        }
}

调用

static void Main(string[] args)
{
    var url = "https://product.suning.com/0000000000/10398812002.html";
    var fileName = $@"D:\保存网页\图片\{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.png";
    WebsiteToImage websiteToImage = new WebsiteToImage($"{url}",fileName);
    websiteToImage.Generate();
}
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消