zoukankan
html css js c++ java
.net 环境下带加减法的验证码
ValidCode.aspx.cs
using
System;
using
System.Data;
using
System.Configuration;
using
System.Collections;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.Drawing;
//
from
http://i.aspx1.com
public
partial
class
Admin_ValidCode : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
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
private
void
CreateCheckCodeImage(
string
checkCode)
{
if
(checkCode
==
null
||
checkCode.Trim()
==
String.Empty)
return
;
System.Drawing.Bitmap image
=
new
System.Drawing.Bitmap((
int
)Math.Ceiling((checkCode.Length
*
15.0
)),
25
);
Graphics g
=
Graphics.FromImage(image);
try
{
//
生成随机生成器
Random random
=
new
Random();
//
清空图片背景色
g.Clear(Color.White);
//
画图片的背景噪音线
for
(
int
i
=
0
; i
<
12
; 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);
g.DrawLine(
new
Pen(Color.Silver), x1, y1, x2, y2);
}
Font font
=
new
System.Drawing.Font(
"
Arial
"
,
16
, (System.Drawing.FontStyle.Bold
|
System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush
=
new
System.Drawing.Drawing2D.LinearGradientBrush(
new
Rectangle(
0
,
0
, image.Width, image.Height), Color.Blue, Color.DarkRed,
1.2f
,
true
);
g.DrawString(checkCode, font, brush,
1
,
1
);
//
画图片的前景噪音点
//
for (int i = 0; i < 100; i++)
//
{
//
int x = random.Next(image.Width);
//
int y = random.Next(image.Height);
//
image.SetPixel(x, y, Color.FromArgb(random.Next()));
//
}
//
image = TwistImage(image, true, 3, 1);
//
画图片的波形滤镜效果
//
画图片的边框线
g.DrawRectangle(
new
Pen(Color.Silver),
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();
Response.ContentType
=
"
image/Gif
"
;
Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}
}
查看全文
相关阅读:
课程总结
2018-2019-2 20189205《移动平台应用开发实践》第一周作业
2019年3月3日 2018-2019-2 20189205《移动平台应用开发实践》第二周作业
2018-2019-2 20189205《移动平台应用开发实践》第十二周作业
2018-2019-2 20189205《移动平台应用开发实践》第十一周作业
项目代码分析
2018-2019-2 20189205《移动平台应用开发实践》第十周作业
博客分工
2018-2019-2 20189205《移动平台应用开发实践》第九周作业
2018-2019-2 20189205《移动平台应用开发实践》第八周作业
原文地址:https://www.cnblogs.com/wbcms/p/1047997.html
最新文章
2019-2020-2 20175329许钰玮《网络对抗技术》Exp9 Web安全基础
2019-2020-2 20175329许钰玮《网络对抗技术》Exp8 Web基础
2019-2020-2 20175329许钰玮《网络对抗技术》Exp7 网络欺诈防范
2019-2020-2 20175329许钰玮《网络对抗技术》Exp6 MSF基础应用
2019-2020-2 20175329许钰玮《网络对抗技术》Exp5 信息搜集与漏洞扫描
2019-2020-2 20175329许钰玮《网络对抗技术》Exp4 analyze malicious code
2019-2020-2 20175329许钰玮《网络对抗技术》Exp3 the method and practice of anti anti-virus
2019-2020-2 20175329许钰玮《网络对抗技术》Exp2 后门原理与实践
2019-2020-2 20175329许钰玮《网络对抗技术》Exp1 PC平台逆向破解
20175329许钰玮 2019-2020-2 《网络对抗技术》Exp0 环境搭建-Kali Linux 的安装
热门文章
20165303魏煜毕业设计学生课题系统的设计与实现
2018-2019-2 20165303《网络对抗技术》Exp9 Web安全基础
2018-2019-2 网络对抗技术 20165303 Exp 8 Web基础
2018-2019-2 20165303 《网络对抗技术》Exp7: 网络欺诈防范
2018-2019-2 网络对抗技术 20165303 Exp6 信息搜集与漏洞扫描
2018-2019-2 20165303《网络攻防技术》Exp5 MSF基础应用
2018-2019-2 网络对抗技术 20165303 Exp4 恶意代码分析
2018-2019-2 网络对抗技术 20165303 Exp3 免杀原理与实践
2018-2019-2 20165303《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 网络对抗技术 20165303 Exp1 PC平台逆向破解(BOF实验)
Copyright © 2011-2022 走看看