webbrowser屏幕截图且标记文字,以及画空心矩形,实心矩形等。

本文介绍了一种使用C#和WebBrowser控件进行网页截图的方法,并详细展示了如何在截图上添加文本标记,包括设置字体、颜色和位置。

最近做了一个屏幕截图的工具,且标记位置,使用的是webbrowser,效果图如下:

关键代码:

private void button_Click(object sender, EventArgs e)
{  
      string url = "https://www.baidu.com/s?wd=高温线厂家&rn=10&ie=utf8";
       WebBrowser webBrowser = new WebBrowser(); 
       webBrowser.Navigate(url); 
       webBrowser.DocumentCompleted += new 
       WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
}
 void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    WebBrowser webBrowser = (WebBrowser)sender;
     // 网页是否加载完
    if (webBrowser.ReadyState == WebBrowserReadyState.Complete)
    {
        // 获取网页高度和宽度,也可以自己设置
        int height = webBrowser.Document.Body.ScrollRectangle.Height;
        int width = webBrowser.Document.Body.ScrollRectangle.Width;
        // 调节webBrowser的高度和宽度
        webBrowser.Height = height;
        webBrowser.Width = width;
        Bitmap bitmap = new Bitmap(width, height);  // 创建高度和宽度与网页相同的图片
        Rectangle rectangle = new Rectangle(0, 0, 700, height);  // 绘图区域
        webBrowser.DrawToBitmap(bitmap, rectangle);  // 截图
        string mark = "目标";
        //为图片添加标记
        Image image = bitmap;
        Bitmap bitmap1 = new Bitmap(image, image.Width, image.Height);
        System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap1);
        rectX = 121;
        rectY = 200;
        
        //字体大小  
        float fontSize = 40.0f;
        //文本的长度  
        float textWidth = mark.Length * fontSize;
        float rectWidth = mark.Length * (fontSize + 40);
        float rectHeight = fontSize + 40;
                           
        if (rectHeight < 0)
        rectHeight = fontSize + 40;
        //声明矩形域  
        RectangleF textArea = new RectangleF(rectX, rectY, rectWidth, rectHeight);
        //定义字体  
        System.Drawing.Font font = new System.Drawing.Font("微软雅黑", fontSize, System.Drawing.FontStyle.Bold);
        //font.Bold = true;  
        //白笔刷,画文字用  
        Brush whiteBrush = new SolidBrush(System.Drawing.Color.Red);
        //g.FillRectangle(whiteBrush , rectX, rectY, rectWidth, rectHeight);//实心矩形
        g.DrawString(mark, font, whiteBrush, textArea);//绘制文字

        Pen pen = new Pen(Color.Red, 3);//钢笔
        g.DrawRectangle(pen, rectX, rectY, 550, rectHeight);//空心矩形

    }
}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值