GenerateValiDateCode
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
namespace GenerateValiDateCode
{
class DrawingHelper
{
private string CreateCheckCodeString()
{
char[] allCharArray =
{
'0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F',
'G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V',
'W','X','Y','Z'
};
string randomCode = "";
Random rand = new Random();
//生成4位验证码字符串
for (int i = 0; i < 4; i++)
{
randomCode += allCharArray[rand.Next(allCharArray.Length)];
}
return randomCode;
}
public void CreateCheckCodeImage(string filePath)
{
//定义图片的宽度
int width = 55;
//定义图片的高度
int height = 22;
//定义大小为12pt的Arial字体,用于绘制文字
Font font = new Font("Arial", 12, FontStyle.Bold);
//定义黑色的单色画笔,用于绘制文字
SolidBrush brush = new SolidBrush(Color.Black);
//定义钢笔,用于绘制干扰线
Pen pen1 = new Pen(Color.Gray, 0);
Pen pen2 = new Pen(Color.FromArgb(255, 100, 100, 100), 0);
//创建一个图像
Bitmap image = new Bitmap(width, height);
//从图像获取一个绘图面
Graphics g = Graphics.FromImage(image);
//清除整个绘图画面并以指定颜色填充
g.Clear(ColorTranslator.FromHtml("#F0F0F0"));
//定义文字的绘制矩形区域
RectangleF rect = new RectangleF(5, 2, width, height);
//定义一个随机数对象,用于绘制干扰线
Random rand = new Random();
//生成两条横向的干扰线
for (int i = 0; i < 2; i++)
{
//定义起点
Point p1 = new Point(0, rand.Next(height));
//定义终点
Point p2 = new Point(width, rand.Next(height));
//绘制直线
g.DrawLine(pen1, p1, p2);
}
//生成4条纵向的干扰线
for (int i = 0; i < 4; i++)
{
//定义起点
Point p1 = new Point(rand.Next(width),0);
//定义终点
Point p2 = new Point(rand.Next(width),height);
//绘制直线
g.DrawLine(pen2, p1, p2);
}
//绘制验证码文字
g.DrawString(CreateCheckCodeString(),font,brush,rect);
//保存图片为jpeg格式
image.Save(filePath,ImageFormat.Jpeg);
//释放对象
g.Dispose();
image.Dispose();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
namespace GenerateValiDateCode
{
class DrawingHelper
{
private string CreateCheckCodeString()
{
char[] allCharArray =
{
'0','1','2','3','4','5','6','7',
'8','9','A','B','C','D','E','F',
'G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V',
'W','X','Y','Z'
};
string randomCode = "";
Random rand = new Random();
//生成4位验证码字符串
for (int i = 0; i < 4; i++)
{
randomCode += allCharArray[rand.Next(allCharArray.Length)];
}
return randomCode;
}
public void CreateCheckCodeImage(string filePath)
{
//定义图片的宽度
int width = 55;
//定义图片的高度
int height = 22;
//定义大小为12pt的Arial字体,用于绘制文字
Font font = new Font("Arial", 12, FontStyle.Bold);
//定义黑色的单色画笔,用于绘制文字
SolidBrush brush = new SolidBrush(Color.Black);
//定义钢笔,用于绘制干扰线
Pen pen1 = new Pen(Color.Gray, 0);
Pen pen2 = new Pen(Color.FromArgb(255, 100, 100, 100), 0);
//创建一个图像
Bitmap image = new Bitmap(width, height);
//从图像获取一个绘图面
Graphics g = Graphics.FromImage(image);
//清除整个绘图画面并以指定颜色填充
g.Clear(ColorTranslator.FromHtml("#F0F0F0"));
//定义文字的绘制矩形区域
RectangleF rect = new RectangleF(5, 2, width, height);
//定义一个随机数对象,用于绘制干扰线
Random rand = new Random();
//生成两条横向的干扰线
for (int i = 0; i < 2; i++)
{
//定义起点
Point p1 = new Point(0, rand.Next(height));
//定义终点
Point p2 = new Point(width, rand.Next(height));
//绘制直线
g.DrawLine(pen1, p1, p2);
}
//生成4条纵向的干扰线
for (int i = 0; i < 4; i++)
{
//定义起点
Point p1 = new Point(rand.Next(width),0);
//定义终点
Point p2 = new Point(rand.Next(width),height);
//绘制直线
g.DrawLine(pen2, p1, p2);
}
//绘制验证码文字
g.DrawString(CreateCheckCodeString(),font,brush,rect);
//保存图片为jpeg格式
image.Save(filePath,ImageFormat.Jpeg);
//释放对象
g.Dispose();
image.Dispose();
}
}
}
调用类
using System;
using System.Collections.Generic;
using System.Text;
namespace GenerateValiDateCode
{
class Program
{
static void Main(string[] args)
{
DrawingHelper dh = new DrawingHelper();
dh.CreateCheckCodeImage(@"D:\CheckCode.jpg");
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace GenerateValiDateCode
{
class Program
{
static void Main(string[] args)
{
DrawingHelper dh = new DrawingHelper();
dh.CreateCheckCodeImage(@"D:\CheckCode.jpg");
}
}
}