用的是Winform做的 截图如下: 对编码不熟悉,所以用数组定义了部分常见的汉字以及英语字母和数字,全部功能写到了一个类里,页面调用就略了 具体代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Drawing.Text; namespace Seven { class MYIMG { #region 类成员 /// <summary> ///图像 /// </summary> private Graphics Grap; /// <summary> /// 画布 /// </summary> public Bitmap Img; /// <summary> /// 随机数 /// </summary> Random rd; /// <summary> /// 颜色 /// </summary> public Color c; /// <summary> /// 画笔 /// </summary> public Pen P; /// <summary> /// 画布X /// </summary> private int height; /// <summary> /// 画布Y /// </summary> private int width; private String[] HanziAyy = { "去", "我", "额", "人", "他", "一", "哦", "平", "啊", "是", "的", "飞", "个", "好", "就", "看", "了", "在", "想", "才", "吧", "你", "吗", "钱", "为", "俄", "让", "如", "仍", "大", "但", "给", "过", "画", "或", "后", "及", "九", "先", "心", "些", "线", "阿", "吖", "嗄", "共", "恶", "却", "区", "强", "更", "高", "够", "故", "法", "方", "份", "房", "凡", "富", "被", "补", "不", "并", "表", "办", "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", "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", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }; #endregion /// <summary> /// 构造一个画布 /// </summary> /// <param name="Height">高度</param> /// <param name="Width">宽度</param> public MYIMG(Int32 Height, Int32 Width) { this.height = Height; this.width = Width; Img = new Bitmap(Height, Width); Grap = Graphics.FromImage(Img); c = Color.LightGray; P = new Pen(c); rd = new Random(); } /// <summary> /// 填充背景 /// </summary> /// <param name="arg">颜色</param> public void FillBackground(Color arg) { SolidBrush b = new SolidBrush(arg); this.Grap.FillRectangle(b, new Rectangle(1,1, height-3,width-3)); } /// <summary> /// 填充边框 /// </summary> /// <param name="arg">颜色</param> public void FillBorder(Color arg) { P.Color = arg; this.Grap.DrawRectangle(P, new Rectangle(0, 0, height-2,width-2)); } /// <summary> /// 填充噪点 /// </summary> /// <param name="Nums">噪点数</param> public void FillNoise(int Nums) { for (int i = 0; i < Nums; i++) { c= Color.FromArgb(rd.Next(256), rd.Next(256), rd.Next(256)); Grap.FillRectangle(new SolidBrush(c), new Rectangle(rd.Next(2,height-5), rd.Next(2,width-5), rd.Next(3), rd.Next(3))); } } /// <summary> /// 画线条 /// </summary> /// <param name="Nums">数量</param> public void DrawLine(int Nums) { for (int i = 0; i < Nums; i++) { c = Color.FromArgb(rd.Next(256), rd.Next(256), rd.Next(256)); P.Color = c; Grap.DrawLine(P, rd.Next(2, height-10), rd.Next(2,width-15), rd.Next(2,height-10), rd.Next(2,width-15)); } } /// <summary> /// 画文字内容 /// </summary> /// <param name="Nums">长度</param> public String DrawString(int Nums) { FontFamily[] f ={ new FontFamily("宋体"), new FontFamily("微软雅黑"), new FontFamily("幼圆"), new FontFamily("华文新魏"), new FontFamily("黑体") }; LinearGradientBrush b; Color c1; String Str = ""; for (int i = 0; i < Nums; i++) { c = Color.FromArgb(rd.Next(256), rd.Next(256), rd.Next(256)); c1=Color.FromArgb(rd.Next(256), rd.Next(256), rd.Next(256)); Font ft = new Font(f[rd.Next(f.Length)], 25,FontStyle.Bold); Str+=HanziAyy[rd.Next(HanziAyy.Length)]; b=new LinearGradientBrush(new Rectangle(0,0,230,55),c,c1,LinearGradientMode.BackwardDiagonal); Grap.DrawString(Str[i].ToString(), ft, b, new PointF(5+i*40, 10)); } return Str; } } }