这些年我收集的GDI+代码2

这些年我收集的GDI+代码2

  点击RSS订阅查看大图

这些年在工作中有空的时候经常拿VS出来画个图玩玩,还是蛮有意思的事情。下面我们就来看看用GDI+是如何实现验证码功能的吧。

  首先,我们先来看看如何在winform上面写文字,以此来做个铺垫。

 

图一、文字效果图

 

图二、验证码

  当我们看到了一个验证码的时候,我们有什么思路呢?是不是看到了数字长的很奇怪呢?是不是单击的时候字会改变呢?是不是字体的颜色也不一样呢?是不是一眼看不清呢?这样做的目的都是为了防止某些邪恶的人用机器来注册。

  思路1:里面的数是随机生成的

  下面进入正式的部分。

  1. 验证码得到随机数

我们在网上点击的时候,是不是点击的是一张图片呢?所以应该在窗体上拖一个图片控件,而且用的是图片的点击事件。

 

图三、验证码得到随机数

我在代码上的注释非常清晰,大家可以参见我上面的注释。

到这步,我们面临两个问题,一个是字体,一个是颜色。那么,我们需要两个数组,一个放字体,一个放颜色。

 

图四、给验证码改变颜色和字体

 

图五、完善验证码的颜色和字体

每画一次上一个颜色,所以上面的代码中用for循环。当我们实现到这一步的时候就差最后数字上面的噪点了,大家想一想,是不是就差一些线呢?这些线的长度最常到哪儿?比如:画十条线的话,就是一个for循环。

 

图六、画噪点

  最终,经过我们的努力来看看最后的效果图吧。

 

图七、最后的效果图

  当我们逐渐的接触到aspdot.net的时候,我们会发现这样的验证码是不用我们手工绘制的,然而,在画验证码时我们用的基础的编程思路是需要掌握的。很多精美的GDI+图都是这么做出来的。

.NET Reflector 7.0.0.420 Crack下载地址:

回到起始位置

作者近期文章列表:

C#中级进阶教程(完全免费,献给代码爱好者的最好礼物。注:本作者分享自己精心整理的C#中级进阶教程,无任何商业目的。希望与更多的代码爱好者交流心得,也请高手多多指点!!!)
ASP.net项目图书商城项目总论
三层及其它内容递归
三层(一)
三层相关案例(及常见的错误)
三层实例(内涵Sql CRUD)
手写代码生成器
SQL数据库 ADO.net数据库的应用图解一
数据库的应用详解二
ADO.NET(内涵效率问题)
ADO.NET实例教学一
ADO.NET实例教学二
数据库的应用详解三
ADO.NET(内含存储过程讲解)
面向过程,面向对象中高级面向过程,面向对象的深入理解一
面向过程,面向对象的深入理解二
面向对象的深入理解三
无处不在的XML
winform基础Winform基础
winform中常用的控件
面向过程三种循环的比较
C#中的方法(上)
我们常见的数组
面向对象思想的转变
C#中超级好用的类
C#中析构函数和命名空间的妙用
C#中超级好用的字符串
C#中如何快速处理字符串
值类型和引用类型及其它
ArrayList和HashTable妙用一
ArrayList和HashTable妙用二
文件管理File类
多态
C#中其它一些问题的小节
GDI+这些年我收集的GDI+代码
这些年我收集的GDI+代码2
HTML概述以及CSS你不能忽视的HTML语言
你不能忽视的HTML语言2精编篇
你不能忽视的HTML语言3
html-综合篇
CSS基本相关内容--中秋特别奉献
CSS基本相关内容2
JavaScript基础JavaScript基础一
javascript基础二JavaScript DOM编程
jQueryjQuery(内涵: jquery选择器)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值