新建一张验证图。放在一个图片框中就好了。如果需要更换。每次生成一次就好 //绘制一张验证图 private void SetRandomImage() { Random randomS = new Random();//产生一个随机数 int a = randomS.Next(10000, 99999);//产生一个随机数
checkCode = a.ToString();//赋值 //建立一个位图文件 确立长宽 Bitmap image = new Bitmap((int)Math.Ceiling((checkCode.Length * 10.5)), 19); Graphics g = Graphics.FromImage(image);//使用gui绘图绘制出这样图 try { //随即数字 Random random = new Random(); //清空图片背景色 g.Clear(Color.Wheat ); //画图片的背景干扰线。6条 for (int i = 0; i < 6; 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); //根据这4个坐标绘制出一条线 g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2); } //更改产生随机数的样式 Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold)); //把产生的随机数以字体的形式写入画面 g.DrawString(checkCode, font, new SolidBrush(Color.Purple ), 2, 2); //画图片的前景干扰点 for (int i = 0; i < 150; i++)//150个 { int x = random.Next(image.Width);//获得x坐标 int y = random.Next(image.Height);//获得Y坐标 //根据x和y坐标绘制一个点。然后绘制颜色。颜色为随即产生 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; this.pictureBox1.Height = image.Height; //并且赋值 this.pictureBox1.Image = image; } catch (Exception ex) { throw ex; } }
private void SetRandomImage()
{
Random randomS = new Random();//产生一个随机数
int a = randomS.Next(10000, 99999);//产生一个随机数
checkCode = a.ToString();//赋值
//建立一个位图文件 确立长宽
Bitmap image = new Bitmap((int)Math.Ceiling((checkCode.Length * 10.5)), 19);
Graphics g = Graphics.FromImage(image);//使用gui绘图绘制出这样图
try
{
//随即数字
Random random = new Random();
//清空图片背景色
g.Clear(Color.Wheat );
//画图片的背景干扰线。6条
for (int i = 0; i < 6; 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);
//根据这4个坐标绘制出一条线
g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2);
}
//更改产生随机数的样式
Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold));
//把产生的随机数以字体的形式写入画面
g.DrawString(checkCode, font, new SolidBrush(Color.Purple ), 2, 2);
//画图片的前景干扰点
for (int i = 0; i < 150; i++)//150个
{
int x = random.Next(image.Width);//获得x坐标
int y = random.Next(image.Height);//获得Y坐标
//根据x和y坐标绘制一个点。然后绘制颜色。颜色为随即产生
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;
this.pictureBox1.Height = image.Height;
//并且赋值
this.pictureBox1.Image = image;
}
catch (Exception ex)
{
throw ex;
}
}