好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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)分别表示验证码的长和高,以上单位都是像素,如下图:

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

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

原文链接:https://HdhCmsTestcnblogs测试数据/lzttttt/archive/2018/12/12/10107881.html

dy("nrwz");

查看更多关于C#实现截取验证码图片的详细内容...

  阅读:42次