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中验证码生成的更多相关文章

  1. java web中验证码生成的demo

    首先创建一个CaptailCode类 package com.xiaoqiang.code; import java.awt.*; import java.awt.font.FontRenderCon ...

  2. 【原创】有关Silverlight中自动生成的类中 没有WCF层edmx模型新加入的对象 原因分析。

      前端页面层:    编译老是不通过,报如下如所示错误:     -- 然后下意识的查了下 生成的cs文件,没有搜到根据edmx 生成的 对应的类.       结果整理: 1.尽管在 edmx 模 ...

  3. MVC中验证码的生成

    在项目中验证码的生成通常是需要页面无刷新的,所以验证码图片实际是跟在某个input后面的img,通过控制该img来控制验证码显示的位置,例如: <div> <input id=&qu ...

  4. Android开发中验证码的生成

    近期在做电商金融类的项目,验证码的生成方法不可缺少.先学习了一种.经过測试好用.从别处学习的代码,稍修改了一下可选择是否支持识别大写和小写.直接上代码. import android.app.Acti ...

  5. php 图片验证码生成 前后台验证

    自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一下,希望大家在用到相关问题的时候可以有一定的参考性. 首先,php验证码生成. 代码如下: 1.生成图像代 ...

  6. ASP.NET验证码生成与识别

    一般验证码页面只输出一个图片而不进行其他业务处理,所以验证码一般放在一般处理程序(httpHandler)页面中,而如果将验证码生成代码放到一般处理程序中,要将生成验证码保存在Session中,这里我 ...

  7. ajax原理,验证码生成原理

    什么是ajax AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML 指一种创建交互式网页应用的网页开发技术.   不是指一种单一的 ...

  8. .net验证码生成及使用

    验证码的作用: 几年前,大部分网站.论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验.但是后来各种灌水机器人.投票机器人.恶意注册机器人层出不穷,大大增加了网 ...

  9. 验证码生成-->漂亮啊

    验证码不用输出太多的HTML代码,直接创建一个一般处理程序,直接上代码 public class VCode : IHttpHandler { HttpContext context = null; ...

随机推荐

  1. ANSYS稳态热分析

    目录 题目 APDL操作 温度云图 题目 管子内径外径为r1=4.125mm,r2=4.635mm,中间物体的产热功率为Q=8.73e8W/m3,管外有温度t=127℃的冷水流过,冷却水与管子外表面的 ...

  2. Java中反射的实现方式

    所谓反射,是指在运行时状态中,获取类中的属性和方法,以及调用其中的方法的一种机制.这种机制的作用在于获取运行时才知道的类(Class)及其中的属性(Field).方法(Method)以及调用其中的方法 ...

  3. js 创建标签执行

    <script type="text/javascript"> var _maq = _maq || []; _maq.push('_setAccount', 'F20 ...

  4. 20175202 《Java程序设计》第五周学习总结

    20175209 2018-2019-2 <Java程序设计>第五周学习总结 教材知识点总结 1.接口声明: 使用关键字interface来定义接口. 定义接口时使用关键字interfac ...

  5. MySQL必知必会第十一章-

    使用数据处理函数 大多数SQL支持以下类型的函数: 1> 文本函数:用于处理文本串(删除或填充值,转换值为大写或小写) 2> 数值函数:用于在数值数据上进行算术操作(返回绝对值,进行代数运 ...

  6. 【DevExpress】GridView的RowClick事件禁用Checkbox选择的解决办法

    添加GridView的RowCellClick事件,代码如下 private void gvBoxMails_RowCellClick(object sender, DevExpress.XtraGr ...

  7. 前端学习之jquery(二)

    操作元素(属性,css,文档处理) 1.1 属性操作 --------------------------属性 $("").attr(); $("").remo ...

  8. 服务器对接码云webhooks

    服务安装git php代码(外网必须可以访问) <?php //本地路径滚adminasdfdasfasdf $file = "/wwwroot/webhooksLog.txt&quo ...

  9. C#读写Excel实践笔记

    使用第三类包:NPOI 介绍 Github地址:https://github.com/tonyqus/npoi,Java POI项目的.NET版. 通过它可以在没有安装Office软件的情况下,快速的 ...

  10. 关于java的动态代理

    给目标对象提供一个代理对象.有代理对象控制目标对象的引用. 1.间接的访问目标对象: 2.对原有的业务增强: 比如:Spring的注解: Mybatis同过mapper接口访问数据库 静态代理: 遵循 ...