栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

C#实现截取验证码图片

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#实现截取验证码图片

本文实例为大家分享了C#截取验证码图片的具体代码,供大家参考,具体内容如下

使用Graphics类中的DrawImage方法,这个方法有30种重载方式,这里只介绍一种,也是我认为最直观的一种,代码如下:

using System.Drawing;

namespace kq.Utils
{
 public static class CommonTools
 {

  public static Bitmap getVerifyCode(Bitmap srcBmp, Rectangle rectangle)
  {
   //初始化一个bmp对象,90代表图片的宽度,37代表高度
   Bitmap bmp = new Bitmap(90, 37);
   Graphics g = Graphics.FromImage(bmp);
   g.DrawImage(srcBmp, 0, 0, rectangle, GraphicsUnit.Pixel);
   return bmp;
  }
 }
}

其中g.DrawImage方法中第一个参数代表被截取的原图,第二第三个参数(0,0)代表在bmp中画的起点xy坐标,第四个参数rectangle代表从srcBmp中截取的区域,最后一个参数GraphicsUnit.Pixel表示以上代表距离以及区域的参数的单位,Pixel代表像素。

以下是使用方式:

using kq.Utils;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System.Drawing;

namespace kq
{
 class Program
 {
  static void Main(string[] args)
  {
   try
   {
    string screenImg = @"d:screenImg.png";

    Bitmap fromBmp = new Bitmap(screenImg);
    Rectangle section1 = new Rectangle(936, 523, 90, 37);

    Bitmap bmp = CommonTools.getVerifyCode(fromBmp, section1);

    bmp.Save(@"d:验证码.bmp");
   }
   catch (System.Exception e)
   {
    System.Console.WriteLine(e.Message);
   }

  }
 }
}

假设我们要截取一张图片中的验证码部分,代码中的(936,523)代表原图中验证码左上角的坐标,(90,37)分别表示验证码的长和高,以上单位都是像素,如下图:

最后截取出来的结果如下图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/122734.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号