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; ...
随机推荐
- jvm各区域OutOfMemory测试方法
1.堆溢出 VM options:-Xmx9999k -Xmn3333k public class HeapOverMemory { public static void main(String[] ...
- redux源码解读(二)
之前,已经写过一篇redux源码解读(一),主要分析了 redux 的核心思想,并用100多行代码实现一个简单的 redux .但是,那个实现还不具备合并 reducer 和添加 middleware ...
- python selenium-webdriver 常用浏览器的操作 (十)
浏览器常用的一些方法和属性其实很简单一些方法,但是却在实际测试过程中经常使用. 浏览器中加载url 方法:get(url) 实例:driver.get("http//:www.baidu.c ...
- docker容器以ROOT账号登录(获取ROOT权限/ROOT密码)
第一步:查看容器的CONTAINER ID docker ps 第二步:获取root权限,例如需要进入的CONTAINER ID为4650e8d1bcca docker exec -ti -u roo ...
- 解决C#程序只允许运行一个实例的几种方法详解
解决C#程序只允许运行一个实例的几种方法详解 本篇文章是对C#中程序只允许运行一个实例的几种方法进行了详细的分析介绍,需要的朋友参考下 本文和大家讲一下如何使用C#来创建系统中只能有该程序的一个实例运 ...
- vue实现原理
1.数据监控(data):监听data属性: new Vue之后内部扫描data属性值,用 Object.defineProperty(obj,name,{ set:value=>{ obj[_ ...
- 浏览器端使用javascript调用腾讯翻译api
最近在学习的小玩意,发现腾讯的文档十分坑爹,里面有很多错误的指示. 不过腾讯的机器翻译还是很牛的,我觉得翻译水准比谷歌好很多. 腾讯的机器翻译貌似在试用阶段,不收费,用QQ或微信登录即可申请使用. 首 ...
- 如何重置Gitlab root用户密码
一.切换到root用户 sudo su 二.进入gitlab控制台 gitlab-rails console production 三.查找用户对象 user = User.).first 四.重置密 ...
- 如何找出单链表中的倒数第k个元素
方法一:快慢指针法 在查找过程中,设置两个指针,初始时指向首元结点(第一个元素结点). 然后,让其中一个指针先前移k步. 然后两个指针再同时往前移动.当先行的指针值为NULL时,另一个指针所指的位置就 ...
- 2016-08-15T16:00:00.000Z 格式转换成yyyy-MM-dd HH:mm:ss格式
public static String UTCStringtODefaultString(String UTCString) { try { if (CommonUtils.notNullAndEm ...