1. 程式人生 > >前端利用canvas畫布生成驗證碼

前端利用canvas畫布生成驗證碼

直接貼程式碼
js部分

function randomRgbColor() { //隨機生成RGB顏色
            var r = Math.floor(Math.random() * 256); //隨機生成256以內r值
            var g = Math.floor(Math.random() * 256); //隨機生成256以內g值
            var b = Math.floor(Math.random() * 256); //隨機生成256以內b值
            return "rgb(" + r + "," + g + "," + b + ")"
; //返回rgb(r,g,b)格式顏色 } window.onload = function () { draw(); document.getElementById("changeImg").onclick=function(){ draw(); } } function draw(){ var canvas = document.getElementById("canvas"); var
context = canvas.getContext("2d"); canvas.width = 120; canvas.height = 40; context.strokeRect(0, 0, 120, 40); var aCode = "A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,1,2,3,4,5,6,7,8,9"; console.log(aCode.split(",")); var aLength = aCode.split(","
).length; for (var i = 0; i <= 3; i++) { var x = 20 + i * 20; var y = 20 + Math.random() * 10; var j = Math.floor(Math.random() * aLength); var deg = Math.random() * 90 * Math.PI / 180;//隨機弧度 var txt = aCode.split(",")[j]; context.fillStyle = randomRgbColor(); context.font = "bold 20px 微軟雅黑"; //修改座標原點和旋轉角度 context.translate(x, y); context.rotate(deg); context.fillText(txt, 0, 0); //恢復座標原點和旋轉角度 context.rotate(-deg); context.translate(-x, -y); } //干擾線 for (var i = 0; i < 8; i++) { context.strokeStyle = randomRgbColor(); context.beginPath(); context.moveTo(Math.random() * 120, Math.random() * 40); context.lineTo(Math.random() * 120, Math.random() * 40); context.stroke(); } /**繪製干擾點**/ for (var i = 0; i < 20; i++) { context.fillStyle = randomRgbColor(); context.beginPath(); context.arc(Math.random() * 120, Math.random() * 40, 1, 0, 2 * Math.PI); context.fill(); } }

html部分

 <canvas id="canvas"></canvas>
 <a href="javascript:;" id="changeImg">再換一張</a>

不知道為什麼不能上傳圖片了,請自行測試。

相關推薦

前端利用canvas畫布生成驗證

直接貼程式碼 js部分 function randomRgbColor() { //隨機生成RGB顏色 var r = Math.floor(Math.random() * 256); //隨機生成256以內r值

利用random模組生成驗證

random模組 該模組用於數學或者資料相關的領域,使用方法非常簡單下面介紹常用的放法 1、隨機小數 random.random() 2、隨機整數random.randint(1,5) # 大於等於1且小於等於5之間的整數,random.randrange(1,10,2) # 大於等於1且小於10之間的奇數

前端生成驗證圖片utils

sta substr setfont som 生成 col height log etc <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%

生成驗證---使用畫布

文字編碼格式: <?php header('content-type:text/html;charset=utf-8'); 圖片編碼格式 header(‘content-type:image/png’) header ( ‘Content-Type: i

Python學習筆記——利用Python生成驗證圖片

話不多說直接上程式碼。 C部落格編輯器程式碼塊縮排有問題 (⊙﹏⊙)b 還是上圖片吧。T_T 哎 = = 湊合看吧。 註釋寫的比較清楚吧。 呼叫方法的話,目前我用兩種 第一種: 直接用Python編譯器呼叫。 我用的是w

利用python生成驗證的四中方式

edr from render aud .sh 字符 choice 噪點 font import random from io import BytesIO from PIL import Image, ImageDraw, ImageFont from django

使用php如何生成驗證

輸出 fontsize lora 支付 () 頭文件 出圖 and utf 項目中經常會遇到一些登陸驗證,支付驗證等等一系列安全驗證的策略。實現方法多種多樣,下面就來講解下如何用php生成簡單的文字+數字組合的驗證碼: 所用語言php,gd庫 原理解釋: a>實質上

java生成驗證圖片

val ttr attribute cep 隨機字符串 sta random pragma rac public class AuthImg extends HttpServlet { /** * */ privat

php生成驗證 參考PHP手冊

ffffff -type apach ob_clean library bom頭 ear png 手冊 視圖層 復制粘貼就可以 phpStudy2013 GD支持未開啟 解決方法 phpStudyAdmin控制臺 - 配置文件 - php.ini 查找“extension=

利用canvas畫布畫出一個鐘表

旋轉角度 stroke 每次 需要 開始 浮點型 nbsp 封裝 locale context是一個封裝了很多繪圖功能的對象。不支持低版本的IE。 <canvas width="500" height="500" id="clock" ></canva

C#生成驗證之四位隨機數

返回 args nbsp ica ebo inpu cti spa ini 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using Sys

詳解圖形圖像技術如何生成驗證

mage 隨機數 har 地址 idt session floor oct type 先說一下思路: (1)先做出基本樣式 (2)用圖像處理技術生成驗證碼,並存session (3)註意img的路徑,後面要跟一個隨機數,便於每次刷新時,傳的地址都是不一樣的 (4)用for

Python學習心得(五) random生成驗證、MD5加密、pickle與json的序列化和反序列化

用法 div com ict file imp randint csdn == # -*- coding:utf-8 -*- import random as rd #驗證碼 import hashlib as hsl #MD5加密 import pickle,json

laravel5.4生成驗證

validate jpeg mage 命令 不顯示 ace request 技術 執行c 總結:本篇博客介紹使用gregwar/captcha實現驗證碼的具體操作步驟,以及可能遇到的問題和解決辦法。 操作步驟: 1, 在laravel5.4項目根目錄下找到 composer

隨機生成驗證及python中的事務

join != rst row pda cep 操作 status 隨機 1.隨機生成驗證碼 # import random # print(random.random()) #0-1的小數 # print(random.randint(1,3))

【5】GDI+ 生成驗證

splay 小應用 eric gen 前景 num 微軟 param graphic 這裏我們做一個小應用,就是繪制一個如下圖所示的驗證碼圖片。並且點擊驗證碼的時候會自動切換。 實現思路如下: 通過Random生成隨機數或字符及驗證碼 通過驗證碼內容長度生成指定大小的圖

三條代 搞定 python 生成驗證

python 驗證碼C:\Users\DELL>pythonPython 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32Type "help", "copyright",

Python 生成驗證

blog col log num style class pytho int spa temp2 = "" for i in range(6): num = random.randrange(0,6) if num == 1 or num == 3

python快速生成驗證(密碼)

python隨機生成驗證碼密碼描述:一個簡單的練習生成驗證碼或密碼的小腳本程序,驗證碼廣泛用於web的隨機驗證模塊,也可以通過稍稍改造,達到隨機生成密碼的效果.來看看代碼吧:代碼:def GetCode(num): code = ‘‘ for i in range(num):

java Zing生成驗證

內嵌 hash exc 圖片 || final print pat fin package yanzm;import java.awt.image.BufferedImage; import java.io.File; import java.io.IOExce