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(, );
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#截取验证码图片的更多相关文章
- Struts2 验证码图片实例
本文转载于DongLiYang的博客http://www.cnblogs.com/dongliyang/archive/2012/08/24/2654431.html 其中修改过一部分,针对使用注解而 ...
- java web学习总结(九) -------------------通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- JavaWeb---总结(九)通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl. ...
- javaweb学习总结(九)—— 通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- java web 学习九(通过servlet生成验证码图片)
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- 通过Servlet生成验证码图片
原文出自:http://www.cnblogs.com/xdp-gacl/p/3798190.html 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类, ...
- javaWeb学习总结(3)- 通过Servlet生成验证码图片(2)
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- 通过Servlet生成验证码图片(转)
原文地址:http://www.cnblogs.com/xdp-gacl/p/3798190.html 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类, ...
- JavaWeb-Servlet-通过servlet生成验证码图片
BufferedImage类 创建一个BufferImage servlet,用来生成验证码图片: package com.fpc; import java.awt.Color; import jav ...
随机推荐
- PowerHA完全手册(二)
http://www.aixchina.net/home/space.php?uid=1006&do=blog&id=40117 第二部分--安装配置篇2.1. 准备2.1.1. 安装 ...
- SCSI, (P)ATA, SAS, NL-SAS and SATA, what’s the difference?
Everybody needs storage space nowadays. Whether it is used for high performance computing or simply ...
- 1023 Have Fun with Numbers
题意: 给定一个正整数(最多有20位),假设这个数是a1a2a3...ak,把这个数乘以2倍,看得到的结果是否仍然是a1a2a3...ak的一个排列 思路: 大整数与int型整数的乘法:简单哈希 ...
- angular 三大核心函数
1.$watch angular监听 由于angular一直在实时监听,所以比react和vue效率要低 $scope.$watch('aModel', function(newValue, o ...
- Box2D学习blog
http://www.ladeng6666.com/blog/category/box2d/
- list map set 集合的区别
Java中的集合包括三大类,它们是Set.List和Map,它们都处于java.util包中,Set.List和Map都是接口,它们有各自的实现 类.Set的实现类主要有HashSet和TreeSet ...
- 如何在老惠普电脑上安装windows xp系统
如何在老惠普电脑上安装windows xp系统 前提,老式的紧凑的惠普台式机,装了linux系统,想要装windows xp系统另作他用.但是使用U盘PE怎么也进不了? 解决办法: 1.拆下惠普主机上 ...
- JS,JQUERY 常用笔记
JSON.parse() 转成数组对象 JSON.stringify() 转成JSON字符串
- DataReader方式 获取数据
/// /// 得到一个对象实体 DataReader方式 /// /// /// 成功返回对象模型,失败返回null public DotNet.Model.Base_Department GetM ...
- Window setInterval() 方法
Window 对象 转自:https://www.w3cschool.cn/jsref/met-win-setinterval.html 定义和用法 setInterval() 方法可按照指定的周期( ...