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();
}
}
}
查看全文
相关阅读:
tensorflow模型的保存与恢复
Anaconda Linux端环境管理
Windows环境下Redis集群部署
Error fetching https://ruby.taobao.org/:RubySass淘宝镜源无效解决
ORM 轻量级框架 Dapper(介绍)
TypeScript 数据类型
TypeScript 环境搭建
微信小程序反编译
利用Fiddler实现手机抓包
SQL 优化常用查询
原文地址:https://www.cnblogs.com/wbcms/p/1047997.html
最新文章
几种linux脚本的简单执行方法
子博客
我为什么要写博客
【Python】多GPU任务在多GPU卡上自动排队部署
tensorflow-gpu版linux端安装成功检验
Fizz Buzz in Tensorflow:一场奇怪的面试
常用Linux系统命令
【python】计算机图形学包 taichi 初步操作指南
Linux给命令设置别名
在.slurm文件中激活Anaconda环境
热门文章
jupyter notebook + MobaXterm Linux端远程部署
马克思主义哲学基本原理总结
Location of Docker images in all Operating Systems (Linux, Windows, Redhat, Mac OS X)
我的Linux vim配置文件
git一键push至github脚本
linux下无root源码安装软件
docker常用命令
【python / mxnet / gluoncv / jupyter notebook】基于mxnet和gluoncv的图像内容识别
【python / mxnet / gluoncv / jupyter notebook】基于mxnet和gluoncv的图像分割
【python / mxnet / gluoncv / jupyter notebook】变换场景的同一行人多重识别
Copyright © 2011-2022 走看看