C#截取验证码图片
2021-06-26 13:06
标签:soscw nbsp color graphic wim 距离 inf lin 对象 使用Graphics类中的DrawImage方法,这个方法有30种重载方式,这里只介绍一种,也是我认为最直观的一种,代码如下: 其中g.DrawImage方法中第一个参数代表被截取的原图,第二第三个参数(0,0)代表在bmp中画的起点xy坐标,第四个参数rectangle代表从srcBmp中截取的区域,最后一个参数GraphicsUnit.Pixel表示以上代表距离以及区域的参数的单位,Pixel代表像素。 以下是使用方式: 假设我们要截取一张图片中的验证码部分,代码中的(936,523)代表原图中验证码左上角的坐标,(90,37)分别表示验证码的长和高,以上单位都是像素,如下图: 最后截取出来的结果如下图: C#截取验证码图片 标签:soscw nbsp color graphic wim 距离 inf lin 对象 原文地址:https://www.cnblogs.com/lzttttt/p/10107881.html 1 using System.Drawing;
2
3 namespace kq.Utils
4 {
5 public static class CommonTools
6 {
7
8 public static Bitmap getVerifyCode(Bitmap srcBmp, Rectangle rectangle)
9 {
10 //初始化一个bmp对象,90代表图片的宽度,37代表高度
11 Bitmap bmp = new Bitmap(90, 37);
12 Graphics g = Graphics.FromImage(bmp);
13 g.DrawImage(srcBmp, 0, 0, rectangle, GraphicsUnit.Pixel);
14 return bmp;
15 }
16 }
17 }
1 using kq.Utils;
2 using OpenQA.Selenium;
3 using OpenQA.Selenium.Chrome;
4 using System.Drawing;
5
6 namespace kq
7 {
8 class Program
9 {
10 static void Main(string[] args)
11 {
12 try
13 {
14 string screenImg = @"d:\screenImg.png";
15
16 Bitmap fromBmp = new Bitmap(screenImg);
17 Rectangle section1 = new Rectangle(936, 523, 90, 37);
18
19 Bitmap bmp = CommonTools.getVerifyCode(fromBmp, section1);
20
21 bmp.Save(@"d:\验证码.bmp");
22 }
23 catch (System.Exception e)
24 {
25 System.Console.WriteLine(e.Message);
26 }
27
28 }
29 }
30 }