/// <summary> /// 获取验证码图片 /// </summary> /// <returns></returns> protected Bitmap GetVerifyCodeImage() { this.GetVerifyCodeText(); Bitmap bitmap = new Bitmap(ImgWidth, ImgHeight); using (Graphics graphics = Graphics.FromImage(bitmap)) { graphics.SmoothingMode = SmoothingMode.HighQuality; //清除整个绘图面并以指定背景色填充 graphics.Clear(this.BackgroundColor); //创建画笔 using (SolidBrush brush = new SolidBrush(this.IsRandomColor?GetRandomColor():this.FontColor)) { this.AddForeNoisePoint(bitmap); this.AddBackgroundNoisePoint(bitmap, graphics); //文字居中 StringFormat stringFormat = new StringFormat(StringFormatFlags.NoClip); stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; //字体样式 Font font = new Font(this.FontFamily, RandomBuilder.GenerateInt(this.FontSize - 3, this.FontSize), FontStyle.Regular); //验证码旋转,防止机器识别 char[] chars = this.VerifyCodeText.ToCharArray(); for (int i = 0; i < chars.Length; i++) { //转动的角度 float angle = RandomBuilder.GenerateInt(-this.RandomAngle, this.RandomAngle); graphics.TranslateTransform(12, 12); graphics.RotateTransform(angle); graphics.DrawString(chars[i].ToString(), font, brush, -2, 2, stringFormat); graphics.RotateTransform(-angle); graphics.TranslateTransform(2, -12); } } } return(bitmap); }
public void TestGenerateInt() { int?old = null; for (int i = 0; i < 100; i++) { var result = _builder.GenerateInt(100); Assert.IsTrue(old != result, "!="); Assert.IsTrue(result >= 0, ">=0"); Assert.IsTrue(result <= 100, "<=100"); } }