使用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(, );
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(srcBmp, , , 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(, , , ); Bitmap bmp = CommonTools.getVerifyCode(fromBmp, section1); bmp.Save(@"d:\验证码.bmp");
}
catch (System.Exception e)
{
System.Console.WriteLine(e.Message);
} }
}
}

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

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

C#截取验证码图片的更多相关文章

  1. Struts2 验证码图片实例

    本文转载于DongLiYang的博客http://www.cnblogs.com/dongliyang/archive/2012/08/24/2654431.html 其中修改过一部分,针对使用注解而 ...

  2. java web学习总结(九) -------------------通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  3. JavaWeb---总结(九)通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片  1 package gacl. ...

  4. javaweb学习总结(九)—— 通过Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  5. java web 学习九(通过servlet生成验证码图片)

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  6. 通过Servlet生成验证码图片

    原文出自:http://www.cnblogs.com/xdp-gacl/p/3798190.html 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类, ...

  7. javaWeb学习总结(3)- 通过Servlet生成验证码图片(2)

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  8. 通过Servlet生成验证码图片(转)

    原文地址:http://www.cnblogs.com/xdp-gacl/p/3798190.html 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类, ...

  9. JavaWeb-Servlet-通过servlet生成验证码图片

    BufferedImage类 创建一个BufferImage servlet,用来生成验证码图片: package com.fpc; import java.awt.Color; import jav ...

随机推荐

  1. git 本地文件里内容 操作记录

    本地环境文件合并分支(以下的都分别 commit提交了的) [一.分支[追加] 和 [新增] 新信息 合并主线  情景] 分支内容: dr.find_element_by_id("su&qu ...

  2. Linux下的Memcache安装,启动

    一.linux安装memcache 1. 如果通过下载源码进行安装,则需要下载最新版本http://memcached.googlecode.com/files/memcached-1.4.13.ta ...

  3. php中的continue用法

    continue 2 表示跳出两层 continue 默认跳出一层 if (count($content_arr) > 0 ) { // 获取相应的goods数据 $goodsdata = ar ...

  4. vs2017 android demo

    vs2017自安装以后就没怎么打开过,虽然12出的时候用10,15出的时候用13,17出的时候用15,但我依然坚持不用也装上再说的理念. 1.vs2017开发IOS和Android安装所必不可少的,u ...

  5. CSS中盒子垂直居中的常用方法

    在前端开发过程中,盒子居中是常常用到的.其中 ,居中又可以分为水平居中和垂直居中.水平居中是比较容易的,直接设置元素的margin: 0 auto就可以实现.但是垂直居中相对来说是比较复杂一些的.下面 ...

  6. PL/SQL查询设计器

    被微软惯坏的我,在使用PL/SQL进行oracle多表连接查询操作时候经常挠头. 今天无意间发现了PL/SQL也有查询设计器,虽然没有sqlserver的强大好用,但足够用了. 在菜单栏 工具---& ...

  7. 不要向没权力&能力的人证明自己的能力

    [不要向没权力&能力的人证明自己的能力] 不是所有的上级都有足够的权力和能力.一个没权力的Leader,即使你向他证明了自己的能力,你所能获得的也只能是他的邮件表扬的荣誉.对于加薪,他能给的仅 ...

  8. laravel数据迁移(创建错误列不能创建)

    创建数据表的命令 php artisan make:migration create_users_table 执行这个迁移的命令, php artisan migrate 其实感觉就像简单的方法创建数 ...

  9. Loadrunner Analyze

    Analysis 对controller运行的结果进行分析 1.首先必须明确:光靠Analysis是不行的,只要能通过Analysis分析出部分问题就已经很不错了, 善于利用它才是最关键的. 2.如何 ...

  10. =面试题:java面试基本方向 背1 有用 项目二技术学完再看

    一.Java基础 1. 集合框架A)集合中泛型优点? 将运行期的ClaasCastException 转到编译期异常.  泛型还提供通配符 1)HashMap---允许一个键为null,允许多个值为n ...