C#创建图片验证码
2015-12-27 22:26
507 查看
try { int iMapWidth = codes.Length * 21; Bitmap map = new Bitmap(iMapWidth, 28); //创建图片背景 Graphics graph = Graphics.FromImage(map); graph.Clear(Color.AliceBlue);//清除画面,填充背景 graph.DrawRectangle(new Pen(Color.Black, 0), 0, 0, map.Width - 1, map.Height - 1);//画一个边框 graph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;//模式 抗锯齿 Random rand = new Random(); //背景噪点生成 Pen blackPen = new Pen(Color.LightGray, 0); for (int i = 0; i < 50; i++) { int x = rand.Next(0, map.Width); int y = rand.Next(0, map.Height); graph.DrawRectangle(blackPen, x, y, 1, 1); } //验证码旋转,防止机器识别 char[] chars = codes.ToCharArray();//拆散字符串成单字符数组 //文字距中 StringFormat format = new StringFormat(StringFormatFlags.NoClip);//允许显示标志符号的伸出部分和延伸到边框外的未换行文本。在默认情况下,延伸到边框外侧的所有文本和标志符号部分都被剪裁。 format.Alignment = StringAlignment.Center; format.LineAlignment = StringAlignment.Center; //定义颜色 Color[] c = { Color.Black, Color.Red, Color.DarkBlue, Color.Green, Color.Orange, Color.Brown, Color.DarkCyan, Color.Purple }; //定义字体 string[] font = { "Verdana", "Microsoft Sans Serif", "Comic Sans MS", "Arial", "宋体" }; for (int i = 0; i < chars.Length; i++) { int cindex = rand.Next(7); int findex = rand.Next(5); Font f = new System.Drawing.Font(font[findex], 13, System.Drawing.FontStyle.Bold);//字体样式(参数2为字体大小) Brush b = new System.Drawing.SolidBrush(c[cindex]); graph.DrawString(chars[i].ToString(), f, b, i*16+8, 15, format); } this.pictureBox1.Image = map; } catch (ArgumentException ex) { MessageBox.Show("创建图片验证码错误,错误原因:"+ex.Message.ToString()); }
相关文章推荐
- C#中的is和as操作符
- C#语言基础----值类型
- 【NCRE】C# WindowForm实现屏幕最顶端拖动
- C#学习一之基础认识
- c#通过webbrowser获取网页中的超链接地址
- C#入门之简单计算器的实现。
- 《c#之全局观》
- C# 字段(Field)、属性(Property)、特性(Attribute)
- C#中字符串的处理
- C#委托
- C#多态
- C# webBrowser控件使用心得
- C#WebBrowser控件使用教程与技巧收集--苏飞收集
- C#视频总结
- C#-字符数组(笔记)
- 【C#学习】——接口例子
- C#面向对象设计模式纵横谈——6.Prototype 原型模式(创建型模式)
- C#学习笔记007-字符串练习
- C#中Console.WriteLine()的用法
- C#-循环滚动字幕,timer,从左至右,从右至左,暂停---ShinePans