【C#】最简单的本地验证码(带项目代码)
C#写的本地生成验证码小软件,附带了验证方法,成品小软件在bin目录下
附上主要代码:
private string Checkcode()
{
int nubre;
char code;
string checkCode = string.Empty; //声明变量存储随机生成的4位英文或数字
Random random = new Random(); //生成随机数
for(int i=0;i<4;i++)
{
nubre = random.Next(); //返回非负随机数
if (nubre % 2 == 0) //判断是否为偶数
code = (char)('0' + (char)(nubre % 10));
else //如果不是偶数
code = (char)('a' + (char)(nubre % 26));
checkCode += " " + code.ToString(); //累加字符串
check = checkCode;
}
return checkCode; //返回字符串
}
private void CodeImage(string checkCode)
{
if (checkCode == null || checkCode.Trim() == string.Empty)
return;
Bitmap image = new Bitmap((int)Math.Ceiling((checkCode.Length * 9.5)), 30);
Graphics g = Graphics.FromImage(image); //创建graphics对象
try
{
Random random = new Random(); //生成随机生成器
g.Clear(Color.White); //清空图片背景色
for(int i=0;i<3;i++) //画图片的背景噪音线
{
int x1 = random.Next(image.Width);
int x2 = random.Next(image.Width);
int y1 = random.Next(image.Height);
int y2 = random.Next(image.Height);
g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);
}
Font font = new Font("Arial", 15, (FontStyle.Bold));
g.DrawString(checkCode, font, new SolidBrush(Color.Red), 2, 2);
for(int i=0;i<150;i++) //画图片的前景噪音线
{
int x = random.Next(image.Width);
int y = random.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
//画图片边框线
g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
this.pictureBox1.Width = image.Width; //设置pictureBox的宽度
this.pictureBox1.Height = image.Height; //设置pictureBox的高度
this.pictureBox1.BackgroundImage = image; //设置pictureBox的背景图片
}
catch
{ }
}
成品:本地验证码
本文出自《粉墨记忆》 => 《【C#】最简单的本地验证码(带项目代码)》
转载时请注明出处及相应链接,
本文地址:https://www.fmxk.ac.cn/?post=4
WRITTEN BY
一名软件开发者,平时把自己的学习成果放在博客上面,也会放一些自己在用的小工具,有问题大家可以留言,我们一起讨论哦!