using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace VerCode
{
public partial class VerCodeForm : Form
{
public VerCodeForm()
{
InitializeComponent();
}
private void picCodeWrapper_Click(object sender, EventArgs e)
{
Random rd = new Random();
string str = null;
// 生成随機數
for (int i = 0; i < 5; i++)
{
int rdCode = rd.Next(0, 9);
str += rdCode;
}
Bitmap bmp = new Bitmap(200, 40);
Graphics g = Graphics.FromImage(bmp);
// 繪制驗證碼
for (int i = 0; i < 5; i++)
{
Point p = new Point(i * 35, 0);
string[] fonts = { "微軟雅黑", "幼圓", "隸書", "宋體", "黑體" };
Color[] colors = { Color.Red, Color.Orange, Color.Yellow, Color.Green, Color.Blue, Color.Purple };
g.DrawString(str[i].ToString(), new Font(fonts[rd.Next(0, 5)], 20, FontStyle.Bold), new SolidBrush(colors[rd.Next(0, 5)]), p);
}
// 驗證碼幹擾線
for (int i = 0; i < 25; i++)
{
Point p1 = new Point(rd.Next(0, bmp.Width), rd.Next(0, bmp.Height));
Point p2 = new Point(rd.Next(0, bmp.Width), rd.Next(0, bmp.Height));
g.DrawLine(new Pen(Brushes.Green), p1, p2);
}
// 驗證碼幹擾像素點
for (int i = 0; i < 300; i++)
{
Point p = new Point(rd.Next(0, bmp.Width), rd.Next(0, bmp.Height));
bmp.SetPixel(p.X, p.Y, Color.Black);
}
picCodeWrapper.Image = bmp;
}
}
}
運作示例:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNyZuBnL4AjMyQjNzcTMwITOwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)