jQuery(function($){

    /**生成一个随机数**/
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min) + min);
}
/**生成一个随机色**/
function randomColor(min, max) {
var r = randomNum(min, max);
var g = randomNum(min, max);
var b= randomNum(min, max);
return "rgb(" + r + "," + g + "," + b + ")";
}
var code=drawPic();
document.getElementById("changeImg").onclick = function(e) {
e.preventDefault();
code=drawPic();
}
/**绘制验证码图片**/
function drawPic() {
var canvas = document.getElementById("canvas");
var width = canvas.width;
var height = canvas.height;
//获取该canvas的2D绘图环境
var ctx = canvas.getContext('2d');
ctx.textBaseline ='bottom';
/**绘制背景色**/
ctx.fillStyle = randomColor(180,240);
//颜色若太深可能导致看不清
ctx.fillRect(0,0,width,height);
/**绘制文字**/
var str ='ABCEFGHJKLMNPQRSTWXY123456789';
     var code="";
     //生成四个验证码
for(var i=1;i<=4;i++) {
var txt = str[randomNum(0,str.length)];
code=code+txt;
ctx.fillStyle = randomColor(50,160);
//随机生成字体颜色
ctx.font = randomNum(15,40) +'px SimHei';
//随机生成字体大小
var x =10 +i *25;
var y = randomNum(25,35);
var deg = randomNum(-45,45);
//修改坐标原点和旋转角度
ctx.translate(x, y);
ctx.rotate(deg * Math.PI /180);
ctx.fillText(txt,0,0);
//恢复坐标原点和旋转角度
ctx.rotate(-deg * Math.PI /180);
ctx.translate(-x, -y);
} /**绘制干扰线**/
for(var i=0;i<3;i++) {
ctx.strokeStyle = randomColor(40, 180);
ctx.beginPath();
ctx.moveTo(randomNum(0,width/2), randomNum(0,height/2));
ctx.lineTo(randomNum(0,width/2), randomNum(0,height));
ctx.stroke();
}
/**绘制干扰点**/
for(var i=0;i <50;i++) {
ctx.fillStyle = randomColor(255);
ctx.beginPath();
ctx.arc(randomNum(0, width), randomNum(0, height),1,0,2* Math.PI);
ctx.fill();
}
return code;
}
});
<a href="#" id="changeImg">
<canvas class="show-captcha" id="canvas" width="150" height="40"></canvas>
</a>

在jquery的代码中,根据id或name获取html或freemarker的标签,如:var canvas = document.getElementById("canvas"); 然后设置画布的宽高,设置干扰点,干扰线。

jquery如何生成图片验证码的更多相关文章

  1. js依赖mui.css生成图片验证码

    js依赖mui.css生成图片验证码 相关css和js引入路径 https://cdnjs.cloudflare.com/ajax/libs/mui/3.7.1/css/mui.css https:/ ...

  2. Django登录(含随机生成图片验证码)注册实例

    登录,生成随机图片验证码 一.登录 - 随机生成图片验证码 1.随机生成验证码 Python随机生成图片验证码,需要使用PIL模块,安装方式如下: pip3 install pillow 1)创建图片 ...

  3. PHP生成图片验证码demo【OOP面向对象版本】

    下面是我今天下午用PHP写的一个生成图片验证码demo,仅供参考. 这个demo总共分为4个文件,具体代码如下: 1.code.html中的代码: <!doctype html> < ...

  4. python 全栈开发,Day85(Git补充,随机生成图片验证码)

    昨日内容回顾 第一部分:django相关 1.django请求生命周期 1. 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这 ...

  5. net生成图片验证码--转自Lisliefor

    目前,机器识别验证码已经相当强大了,比较常见的避免被机器识别的方法,就是将验证码的字符串连到一起,这样就加大的识别的难度,毕竟机器没有人工智能.我找了很多的.net生成图片验证码的例子,后来经过一些修 ...

  6. python PIL图像处理-生成图片验证码

    生成效果如图: 代码 from PIL import Image,ImageDraw,ImageFont,ImageFilter import random # 打开一个jpg图像文件: im = I ...

  7. 在.net core web项目中生成图片验证码

    第1步:添加SkiaSharp包引用 Install-Package SkiaSharp 第2步:编写生成图片验证码的代码 using SkiaSharp; //在类文件头部添加引用 public I ...

  8. 【转载】Asp.Net生成图片验证码工具类

    在Asp.Net应用程序中,很多时候登陆页面以及其他安全重要操作的页面需要输入验证码,本文提供一个生成验证码图片的工具类,该工具类通过随机数生成验证码文本后,再通过C#中的图片处理类位图类,字体类,一 ...

  9. (七)利用servlet生成图片验证码

    总结: 验证码就是一张图,然后往这张图上写入随机的字符(数字字母等). 1.1 编写html页面 <!DOCTYPE html> <html> <head> < ...

随机推荐

  1. springBoot 利用Idea打包部署

    springBoot 打包部署 1 项目如图: 2 依赖打包插件 3 打包操作 4 运行项目:

  2. vue 实战

    vue 实战 Vue命令行工具vue-cli https://www.cnblogs.com/xiaohuochai/p/7277771.html https://github.com/ymblog/ ...

  3. linux查找与替换练习

    查找和替换-举例 删除/tmp/abc文件中第 2 至 5 行的内容 在第 2 行后面添加 123456 这一行 在文件的最后一行前面添加 123456 将文件中的 cat全部替换成 dog 注以上操 ...

  4. service里无法注入mapper,mapper空指针

    被困扰了一天,终于解决了,记录一下 下面是mapper的代码 @Mapper public interface ProductDao { @Select("select * from pro ...

  5. k-mean

    import numpy as np from k_initialize_cluster import k_init np.random.seed() class YOLO_Kmeans: def _ ...

  6. 细说PHP-fpm

    在理解php-fpm之前,我们要先搞清楚几个关键词以及他们之间的关系:CGI FastCGI:(Fast Common Gateway Interface),即快速通用网关接口,是一种让交互程序与We ...

  7. 洛谷P1962 斐波那契数列题解

    题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数) 题目描述 请 ...

  8. connect via ssh to virtualbox guest vm without knowing ip address

    cat ssh-vm HOSTIP=`ip route get 1 | awk '{match($0, /.+src\s([.0-9]+)/, a);print a[1];exit}'` HOST_N ...

  9. 安装supervisor 失败 :/usr/bin/python: bad interpreter: No such file

    以前在安装python 双版本时将python改为了python2所以找不到python,打开那个echo_supervised_conf然后把 #!/usr/bin/python 改为如图就可以了

  10. Pytest权威教程19-编写钩子(Hooks)方法函数

    目录 编写钩子(Hooks)函数 钩子函数验证和执行 firstresult: 遇到第一个有效(非None)结果返回 hookwrapper:在其他钩子函数周围执行 钩子(Hooks)函数排序/调用示 ...