context.Response.ContentType = "text/plain";
//创建一个图片对象
using (Image img = new Bitmap(100, 30))
{
//创建一个画家对象
using (Graphics g = Graphics.FromImage(img))
{
//清空默认黑色背景,设置背景为白色
g.Clear(Color.White);
int width = img.Width; //获得当前设置的图片的宽度
int height = img.Height;//获得当前设置的图片的告诉
Random random = new Random();
//画图片的背景噪音线
for (int i = 1; i <= 7; i++)
{
int x1 = random.Next(width);
int x2 = random.Next( width);
int y1 = random.Next(height);
int y2 = random.Next(height);
g.DrawLine(new Pen(Brushes.Black), x1, y1, x2, y2);
}
//画图片边框线
g.DrawRectangle(new Pen(Brushes.Black,1), 0, 0, width-1, height-1);
string[] font={"微软雅黑","宋体","隶书","楷体"}; //定义变量存储字体
//定义变量存储子类类型
object[] fontStyle={FontStyle.Bold,FontStyle.Italic,FontStyle.Regular,FontStyle.Strikeout,FontStyle.Underline};
Font f = new Font(font[random.Next(3)], 20,(FontStyle)(fontStyle[random.Next(0,3)]));
//画验证码
g.DrawString(RandomNum(),f,Brushes.Black,8,0);
//将图片以指定格式保存到流中
img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
#region MyRegion
/// <summary>
/// 随机生成验证码
/// </summary>
/// <returns></returns>
private string RandomNum()
{
Random random = new Random();
char code;
string checkCode = string.Empty;
for (int i = 0; i < 4; i++)
{
int number = random.Next(1, 128);
if (number % 2 == 0)
code = (char)('1' + (char)(number % 9));
else
code = (char)('A' + (char)(number % 24));
checkCode += code;
}
return checkCode;
}