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();
}
}
}
查看全文
相关阅读:
localhost和127.0.0.1及ip区别
Linux常用命令大全
百度搜红包相关代码(1)
今天开博第一篇,呵呵
杯具啊,中考
新年感想
【转】汇编语言基础
margin与padding
.net 中的Literal Label 控件、Literal 控件、Panel 控件和 Placeholder 控件
HTML 5 中的新元素
原文地址:https://www.cnblogs.com/wbcms/p/1047997.html
最新文章
客户端出错:无法在数据表视图中显示该列表: 没有安装与 Windows SharePoint Services 兼容的数据表组件
内容查询Web 部件定制
Windows 服务入门
在VS2005中如何通过程序修改Label组件的大小
2006年8.26"工作"总结
在VS2005中 Web服务设计面版如何调出
VS2005水晶报表在时部署时遇到的问题
如何找到自己写的dll的入口点
[转]反毒专家刘旭面临惨境 自主创新成果绝处求生
ASP.Net2.0 WebPart趣味网页设计
热门文章
如何利用IE进行JavaScript脚本调试
怎样从ASP.NET 2.0中读取连接字符串的设置
Sql Server
0基础学习C#
Android Test
Harbor是什么
Shell 教程
Linux CenterOS安装mysql5.6.12linuxglibc2.5x86_64.tar.gz步骤
Linux必学的60个命令
安装mysql5.6报错问题统计点
Copyright © 2011-2022 走看看