Silverlight中验证码生成
public class ValidationCode
{
Random r = new Random(DateTime.Now.Millisecond); /// <summary>
/// 用于在生成验证码
/// </summary>
/// <param name="text">生成验证码的字符串</param>
/// <param name="img">silverlight中的Imge控件</param>
public void CreatImage(string text, Image img)
{
int height =Convert.ToInt32(img.Height);
int width = Convert.ToInt32(img.Width);
Grid Gx = new Grid(); //用于生成干扰线
Canvas cv1 = new Canvas();
for (int i = ; i < ; i++)
{
Polyline p = new Polyline();
for (int ix = ; ix < r.Next(, ); ix++)
{
p.Points.Add(new Point(r.NextDouble() * width,
r.NextDouble() * height));
}
byte[] Buffer = new byte[];
r.NextBytes(Buffer);
SolidColorBrush SC = new SolidColorBrush(Color.FromArgb(,
Buffer[], Buffer[], Buffer[]));
p.Stroke = SC;
p.StrokeThickness = 0.5;
cv1.Children.Add(p);
}
Gx.Children.Add(cv1); //用于生成数字
Canvas cv2 = new Canvas();
int y = ;
int lw = ;
double w = (width - lw) / text.Length;
int h = (int)height;
foreach (char x in text)
{
byte[] Buffer = new byte[];
r.NextBytes(Buffer); //用随机数填充字节数组的元素
SolidColorBrush SC = new SolidColorBrush(Color.FromArgb(,
Buffer[], Buffer[], Buffer[]));
TextBlock t = new TextBlock();
t.TextAlignment = TextAlignment.Center;
t.FontSize = r.Next(h - , h); //返回一个指定范围内的数 设定字体大小<像素高度-3>
t.Foreground = SC; //设置前景色
t.Text = x.ToString();
t.Projection = new PlaneProjection() //对象的透视转换(类似三维效果)
{
RotationX = r.Next(-, ),
RotationY = r.Next(-, ),
RotationZ = r.Next(-, )
};
cv2.Children.Add(t);
Canvas.SetLeft(t, lw / + y * w);
Canvas.SetTop(t, );
y++;
} Gx.Children.Add(cv2); //基于内存管理图像的类
WriteableBitmap W = new WriteableBitmap(Gx, new TransformGroup());
W.Render(Gx, new TransformGroup()); img.Source = W;
}
}
Silverlight中验证码生成的更多相关文章
- java web中验证码生成的demo
首先创建一个CaptailCode类 package com.xiaoqiang.code; import java.awt.*; import java.awt.font.FontRenderCon ...
- 【原创】有关Silverlight中自动生成的类中 没有WCF层edmx模型新加入的对象 原因分析。
前端页面层: 编译老是不通过,报如下如所示错误: -- 然后下意识的查了下 生成的cs文件,没有搜到根据edmx 生成的 对应的类. 结果整理: 1.尽管在 edmx 模 ...
- MVC中验证码的生成
在项目中验证码的生成通常是需要页面无刷新的,所以验证码图片实际是跟在某个input后面的img,通过控制该img来控制验证码显示的位置,例如: <div> <input id=&qu ...
- Android开发中验证码的生成
近期在做电商金融类的项目,验证码的生成方法不可缺少.先学习了一种.经过測试好用.从别处学习的代码,稍修改了一下可选择是否支持识别大写和小写.直接上代码. import android.app.Acti ...
- php 图片验证码生成 前后台验证
自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一下,希望大家在用到相关问题的时候可以有一定的参考性. 首先,php验证码生成. 代码如下: 1.生成图像代 ...
- ASP.NET验证码生成与识别
一般验证码页面只输出一个图片而不进行其他业务处理,所以验证码一般放在一般处理程序(httpHandler)页面中,而如果将验证码生成代码放到一般处理程序中,要将生成验证码保存在Session中,这里我 ...
- ajax原理,验证码生成原理
什么是ajax AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML 指一种创建交互式网页应用的网页开发技术. 不是指一种单一的 ...
- .net验证码生成及使用
验证码的作用: 几年前,大部分网站.论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验.但是后来各种灌水机器人.投票机器人.恶意注册机器人层出不穷,大大增加了网 ...
- 验证码生成-->漂亮啊
验证码不用输出太多的HTML代码,直接创建一个一般处理程序,直接上代码 public class VCode : IHttpHandler { HttpContext context = null; ...
随机推荐
- Android Studio学习之build.gradle文件
参考书籍:第一行代码 最外层目录下的build.gradle buildscript{repositories{ jcenter() //代码托管仓库 } dependencies{ classpat ...
- PythonStudy——生成器
# 生成器:自定义的迭代器对象 # -- 就是用函数语法来声明生成器,用yield关键字取代return关键字来返回值,参数没有多少变化 # 总结:有yield关键字的函数,函数名() 不是调用函数, ...
- Django学习笔记之验证和授权
验证和授权概述 Django有一个内置的授权系统.他用来处理用户.分组.权限以及基于cookie的会话系统.Django的授权系统包括验证和授权两个部分.验证是验证这个用户是否是他声称的人(比如用户名 ...
- 18.7 修改IP地址
ifconfig #查看ip sudo ifconfig eth3 10.3.10.232 #修改ip
- HanLP Analysis for Elasticsearch
基于 HanLP 的 Elasticsearch 中文分词插件,核心功能: 兼容 ES 5.x-7.x: 内置词典,无需额外配置即可使用: 支持用户自定义词典: 支持远程词典热更新(待开发): 内置多 ...
- nis+kerberos 实现服务验证
1.NIS部分 1.1 简介 NIS(Network Information Service,or Yellow Page or YP) 网络信息服务,由sun公司开发并授权给unix供应商, ...
- Laravel5笔记--路由
路由:简单讲就是定义URL请求转向某个业务逻辑(一般是控制器方法)的方法. 1.路由定义文件: /routes/web.php //定义web访问的路由 /routes/api.php // ...
- ELK + Filebeat 日志分析系统
ELK + Filebeat 日志分析系统 架构图 环境 OS:CentOS 7.4 Filebeat: 6.3.2 Logstash: 6.3.2 Elasticsearch 6.3.2 Kiban ...
- @RequestParam、@ReqeustBody、@ReponseBody认识
简介: @RequestParam和@RequestBody均是处理request body部分的注解,都用于获取请求部分的参数. @ResponseBody是用于响应部分的注解 1. @Reques ...
- linux dd命令 创造一个文件
创造一个1G的文件 dd if=/dev/zero of=/nod/tmp/test bs=1M count=1024 创造一个1T的文件 [root@oracledg tmp]# dd if=/de ...