//给客户端的验证码图片
//hmtl代码就不用给客户端,所以要CLear()
Response.Clear();//清除缓冲区流中所有内容的输出
//开始画验证码
//创建一个图片
Bitmap bmp = new Bitmap(60, 30);
//创建一个画板
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Silver);
//画内容
string str = "0123456789ABCDEFG";
string code = "";//保存验证码的内容
Random r = new Random();
for (int i = 0; i < 4; i++)
{
int index = r.Next(0, str.Length);//包括下限不包括上限
code += str[index];//随机的字符
}
//干扰线..随机产生两个点的x,y值
//通过这两个点就可以产生一个随机线
//g.DrawLine()
//把随机产生的字符画到画布上
Font f = new Font("黑体", 13);
//距形
Rectangle rec = new Rectangle(0, 0, 60, 30);
Brush br = new LinearGradientBrush(rec, Color.Red, Color.Blue, 1); //new SolidBrush(Color.Blue);
g.DrawString(code, f, br, 8, 5);
//在服务器上保存验证码,
Session["code"] = code;
//到这一步
//验证码的图片画好了
//把图片发送给客户端
Response.ContentType = "image/jpeg";//内容的MIME类型
//网络传递的是字节
//图片通过文件流来变成字节
MemoryStream ms = new MemoryStream();//内存流
bmp.Save(ms, ImageFormat.Jpeg); //将图片保存到流中
//流上就可以获取到字节
byte[] buffer = ms.GetBuffer();
//发送数据
Response.BinaryWrite(buffer);//把一个二进制字符串写入到http输出流
//后面的内容不需要给客户端了
Response.End();
//hmtl代码就不用给客户端,所以要CLear()
Response.Clear();//清除缓冲区流中所有内容的输出
//开始画验证码
//创建一个图片
Bitmap bmp = new Bitmap(60, 30);
//创建一个画板
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.Silver);
//画内容
string str = "0123456789ABCDEFG";
string code = "";//保存验证码的内容
Random r = new Random();
for (int i = 0; i < 4; i++)
{
int index = r.Next(0, str.Length);//包括下限不包括上限
code += str[index];//随机的字符
}
//干扰线..随机产生两个点的x,y值
//通过这两个点就可以产生一个随机线
//g.DrawLine()
//把随机产生的字符画到画布上
Font f = new Font("黑体", 13);
//距形
Rectangle rec = new Rectangle(0, 0, 60, 30);
Brush br = new LinearGradientBrush(rec, Color.Red, Color.Blue, 1); //new SolidBrush(Color.Blue);
g.DrawString(code, f, br, 8, 5);
//在服务器上保存验证码,
Session["code"] = code;
//到这一步
//验证码的图片画好了
//把图片发送给客户端
Response.ContentType = "image/jpeg";//内容的MIME类型
//网络传递的是字节
//图片通过文件流来变成字节
MemoryStream ms = new MemoryStream();//内存流
bmp.Save(ms, ImageFormat.Jpeg); //将图片保存到流中
//流上就可以获取到字节
byte[] buffer = ms.GetBuffer();
//发送数据
Response.BinaryWrite(buffer);//把一个二进制字符串写入到http输出流
//后面的内容不需要给客户端了
Response.End();