C#实现截取验证码图片

 更新时间:2018年12月13日 13:36:15   作者:老狗子  
这篇文章主要为大家详细介绍了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)分别表示验证码的长和高,以上单位都是像素,如下图:

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

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

相关文章

  • TortoiseSVN使用教程

    TortoiseSVN使用教程

    TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。本文给大家介绍TortoiseSVN使用教程,对tortoisesvn使用相关知识感兴趣的朋友一起学习吧
    2015-12-12
  • .NET C#利用ZXing生成、识别二维码/条形码

    .NET C#利用ZXing生成、识别二维码/条形码

    ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。这篇文章主要给大家介绍了.NET C#利用ZXing生成、识别二维码/条形码的方法,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴。
    2016-12-12
  • C#数据库操作小结

    C#数据库操作小结

    每次做项目都会用到数据库,对数据库的操作都是糊里糊涂从书里找代码用。通过昨天晚上与今天早上的努力,把数据库的操作整理了一下,下面把整理结果做个小结
    2012-09-09
  • C# 脚本引擎CS-Script的使用

    C# 脚本引擎CS-Script的使用

    这篇文章主要介绍了C#脚本引擎CS-Script的使用,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-12-12
  • C#组合模式实例详解

    C#组合模式实例详解

    这篇文章主要介绍了C#组合模式,实例分析了C#实现组合模式的原理与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C#获取路由器外网IP,MAC地址的实现代码

    C#获取路由器外网IP,MAC地址的实现代码

    这篇文章主要介绍了C#获取路由器外网IP,MAC地址的实现代码,需要的朋友可以参考下
    2016-11-11
  • C#实现随鼠标移动窗体实例

    C#实现随鼠标移动窗体实例

    这篇文章主要介绍了C#实现随鼠标移动窗体实例,主要通过简单的窗体事件代码即可实现鼠标随窗体移动的功能,非常简单实用,需要的朋友可以参考下
    2014-10-10
  • Unity实现通用的信息提示框

    Unity实现通用的信息提示框

    这篇文章主要为大家详细介绍了Unity实现通用的信息提示框,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • 浅析C#中数组,ArrayList与List对象的区别

    浅析C#中数组,ArrayList与List对象的区别

    在C#中,当我们想要存储一组对象的时候,就会想到用数组,ArrayList,List这三个对象了。那么这三者到底有什么样的区别呢
    2013-07-07
  • C# SaveFileDialog与OpenFileDialog用法案例详解

    C# SaveFileDialog与OpenFileDialog用法案例详解

    这篇文章主要介绍了C# SaveFileDialog与OpenFileDialog用法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08

最新评论