jQuery canvas draws picture verification code example

jQuery canvas draws picture verification code example

This article example shares the specific code of jquery canvas drawing picture verification code for your reference. The specific content is as follows

CSS

.identify-code{
    position: absolute;
    right: 6px;
    top: 50%;
    width: 118px;
    height: 40px;
    margin: -21px 0 0 0;
}

HTML

<span id="code" class="identify-code">
  <canvas class="show-captcha" id="canvas" style="width: 100%; height: 100%;"></canvas>
</span>

JS

/**Draw the verification code image**/
function drawPic() {
    var canvas = document.getElementById("canvas");
    var width = canvas.width;
    var height = canvas.height;
    //Get the 2D drawing environment of the canvas var ctx = canvas.getContext('2d'); 
    ctx.textBaseline = 'bottom';
    /**Draw the background color**/
    ctx.fillStyle = randomColor(180, 240);
    //If the color is too dark, it may not be clear ctx.fillRect(0,0,width,height);
    /**Draw text**/
    var str ='ABCEFGHJKLMNPQRSTWXY123456789abcefghjklmnpqrstwxy';
    var code="";
    //Generate four verification codes for(var i = 1;i <= 4; i++) {
        var txt = str[randomNum(0,str.length)];
        code=code+txt;
        ctx.fillStyle = randomColor(50,160);
        //Randomly generate font color ctx.font = randomNum(90,110) +'px SimHei';
        // Randomly generate font size var x = 10 + i * 50;
        var y = randomNum(100, 135);
        var deg = randomNum(-30, 30);
        //Modify the coordinate origin and rotation angle ctx.translate(x, y); 
        ctx.rotate(deg * Math.PI /180); 
        ctx.fillText(txt,0,0);
        //Restore the coordinate origin and rotation angle ctx.rotate(-deg * Math.PI /180);
        ctx.translate(-x, -y);
    }
        
    /**Draw interference line**/
    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();
    }
    /**Draw interference points**/
    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;
}
/**Generate a random number**/
function randomNum(min, max) {
    return Math.floor(Math.random() * (max - min) + min);
}
/**Generate a random color**/
function randomColor(min, max) {
    var r = randomNum(min, max);
    var g = randomNum(min, max);
    var b = randomNum(min, max);
    return "rgb(" + r + "," + g + "," + b + ")";
}

Calling Instance

$("#code").unbind('click').click(function(e){
    e.preventDefault();
    createCode();
});
//Generate verification code function createCode(){
  VerificationCodeErrCount = 0;
  randomCode = drawPic();
  return randomCode;
}

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • JQuery implements a simple verification code prompt solution
  • jQuery implements the countdown code for sending verification code by mobile phone
  • jQuery implements sending verification code and 60-second countdown function
  • Jquery plug-in to prevent re-obtaining within 60 seconds after clicking to obtain the verification code
  • jQuery plugin to implement static HTML verification code verification
  • jQuery click to get the verification code button and countdown function
  • jQuery implements verification code function
  • jQuery implements a simple verification code function
  • jQuery implements form to obtain SMS verification code
  • jQuery implements the countdown effect code sharing of sending verification code by mobile phone

<<:  Web page creation basic declaration document type description (DTD

>>:  Practical record of MySQL 5.6 master-slave error reporting

Recommend

How to use JS to implement waterfall layout of web pages

Table of contents Preface: What is waterfall layo...

HTML validate HTML validation

HTML validate refers to HTML validation. It is the...

When the interviewer asked the difference between char and varchar in mysql

Table of contents Difference between char and var...

...

Best Practices for Deploying ELK7.3.0 Log Collection Service with Docker

Write at the beginning This article only covers E...

Sample code for implementing markdown automatic numbering with pure CSS

The origin of the problem The first time I paid a...

Vue implements a search box with a magnifying glass

This article shares with you how to use Vue to im...

You really need to understand the use of CSS variables var()

When a web project gets bigger and bigger, its CS...

Example analysis of mysql non-primary key self-increment usage

This article uses an example to illustrate the us...

Summary of common commands for building ZooKeeper3.4 middleware under centos7

1. Download and decompress 1. Introduction to Zoo...

Brief analysis of centos 7 mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar

Baidu Cloud Disk: Link: https://pan.baidu.com/s/1...

Pitfalls and solutions encountered in MySQL timestamp comparison query

Table of contents Pitfalls encountered in timesta...

How to modify the default submission method of the form

The default submission method of html is get inste...