csdn差不多的验证码。
来源:互联网 发布:head first python 编辑:程序博客网 时间:2024/04/20 19:12
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Collections;
namespace ValidateCode
{
public class VCode
{
public MemoryStream DrawVCode(string content)
{
System.Random random = new Random();
//创建图片对象
System.Drawing.Bitmap image = new Bitmap((int)content.Length * 17, 30);
Graphics gh = Graphics.FromImage(image);
ArrayList bgcolor = new ArrayList();
bgcolor.Add(Color.Honeydew);
bgcolor.Add(Color.AliceBlue);
bgcolor.Add(Color.White);
bgcolor.Add(Color.Azure);
bgcolor.Add(Color.OldLace);
bgcolor.Add(Color.Lavender);
gh.Clear((Color)bgcolor[random.Next(0, 5)]);
//噪音线颜色数组
System.Collections.ArrayList c = new ArrayList();
c.Add(Color.Silver);
c.Add(Color.SeaShell);
c.Add(Color.SkyBlue);
for (int i = 0; i < 25; 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);
gh.DrawLine(new Pen((Color)c[random.Next(0, 2)]), x1, y1, x2, y2);
}
//噪音点
for (int i = 0; i < 200; i++)
{
int x = random.Next(1, image.Width - 2);
int y = random.Next(1, image.Height - 2);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
//设定字体颜色
System.Collections.ArrayList cb = new ArrayList();
cb.Add(Color.Black);
cb.Add(Color.DarkBlue);
cb.Add(Color.Purple);
cb.Add(Color.Indigo);
cb.Add(Color.DarkRed);
cb.Add(Color.IndianRed);
char[] CArray = content.ToCharArray();
for (int i = 0; i < CArray.Length; i++)
{
string cstr = CArray[i].ToString();
Font f = new Font("Times New Roman", 15);
gh.DrawString(cstr, f, new SolidBrush((Color)cb[random.Next(0, 5)]), 2 + ((int)f.SizeInPoints) * i, 2);
}
gh.DrawRectangle(new Pen((Color)cb[random.Next(0, 5)]), 0, 0, image.Width - 1, image.Height - 1); //汇出边框
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
return ms.ToArray();
}
}
}
==========
编译成组件
- csdn差不多的验证码。
- 识别CSDN的验证码
- CSDN验证码的漏洞
- 做的差不多了
- CSDN日报20170418 ——《如果两个程序员差不多,选写作能力更好的那个》
- 暴汗的CSDN登录验证码
- csdn百年难得一见的验证码
- 2007 CSDN 最吉祥的验证码
- CSDN图片验证码的识别代码
- 差不多
- CSDN验证码识别
- “差不多先生”引发的悲剧
- CoreJava看的差不多了
- 第一次来CSDN写自己的博客,关于面试的题目,我差不多面试一个月了
- CSDN验证码验证失败问题解决
- CSDN的验证码有没有起作用呀?
- 实例程序实现对CSDN验证码的识别
- (转)转载于csdn的验证码大杂烩
- 测量机ETH部分培训
- Eclipse3.2.1 + MyEclipse5.1下配置websphere6.1并进行实时调试
- 2.14晴 情人节
- Professional
- 保健常识
- csdn差不多的验证码。
- .NET Micro Framework初体验(二)
- 获取LCS中在线用户的信息
- 如何正确鉴别硬件防火墙性能的差异
- 完美的Flex - TabNavigator 组件
- Crystal Reports for Eclipse(1)
- 硬件防火墙基本知识
- 网页写作习惯的改变
- 银行业务之二--日终处理