【文件属性】:
文件名称:NET图片加减法的验证码控件
文件大小:3KB
文件格式:RAR
更新时间:2018-09-15 10:13:57
加减法验证码
NET图片加减法的验证码控件,、
this.CreateCheckCodeImage(GenerateCheckCode());
private string GenerateCheckCode()
{
int intFirst, intSec, intTemp;
string checkCode = String.Empty;
System.Random random = new Random();
intFirst = random.Next(1, 10);
intSec = random.Next(1, 10);
switch (random.Next(1, 3).ToString())
{
case "2":
if (intFirst < intSec)
{
intTemp = intFirst;
intFirst = intSec;
intSec = intTemp;
}
checkCode = "=" + intFirst + "-" + intSec;
Session["ValidCode"] = intFirst - intSec;
break;
default:
checkCode = "=" + intFirst + "+" + intSec;
Session["ValidCode"] = intFirst + intSec;
break;
}
//Response.Cookies.Add(new HttpCookie("ValidCode",Movie.Common.AES.EncryptAes(checkCode)));
return checkCode;
}
#region 产生波形滤镜效果
private const double PI = 3.1415926535897932384626433832795;
private const double PI2 = 6.283185307179586476925286766559;
private System.Drawing.Bitmap TwistImage(Bitmap srcBmp, bool bXDir, double dMultValue, double dPhase)
{
System.Drawing.Bitmap destBmp = new Bitmap(srcBmp.Width, srcBmp.Height);
// 将位图背景填充为白色
System.Drawing.Graphics graph = System.Drawing.Graphics.FromImage(destBmp);
graph.FillRectangle(new SolidBrush(System.Drawing.Color.White), 0, 0, destBmp.Width, destBmp.Height);
graph.Dispose();
double dBaseAxisLen = bXDir ? (double)destBmp.Height : (double)destBmp.Width;
for (int i = 0; i < destBmp.Width; i++)
{
for (int j = 0; j < destBmp.Height; j++)
{
double dx = 0;
dx = bXDir ? (PI2 * (double)j) / dBaseAxisLen : (PI2 * (double)i) / dBaseAxisLen;
dx += dPhase;
double dy = Math.Sin(dx);
// 取得当前点的颜色
int nOldX = 0, nOldY = 0;
nOldX = bXDir ? i + (int)(dy * dMultValue) : i;
nOldY = bXDir ? j : j + (int)(dy * dMultValue);
System.Drawing.Color color = srcBmp.GetPixel(i, j);
if (nOldX >= 0 && nOldX < destBmp.Width
&& nOldY >= 0 && nOldY < destBmp.Height)
{
destBmp.SetPixel(nOldX, nOldY, color);
}
}
}
return destBmp;
}
#endregion
【文件预览】:
Default.aspx
ValidCode.aspx
ValidCode.aspx.cs
Default.aspx.cs