视频直播源码,前端canvas动态验证码实现

视频直播源码,前端canvas动态验证码实现

 

1
 // 生成一个随机数<br>    const randomNum = (min: number, max: number) => {<br>        return Math.floor(Math.random() * (max - min) + min)<br>    }<br>    // 生成一个随机的颜色<br>    const randomColor = (min: number, max: number) => {<br>        const r = randomNum(min, max)<br>        const g = randomNum(min, max)<br>        const b = randomNum(min, max)<br>        return 'rgb(' + r + ',' + g + ',' + b + ')'<br>    }<br>    //canvas图片刷新<br>    const initCode = () => {<br>        const len = 4<br>        const codeList: [] = []<br>        const chars: string = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz0123456789'<br>        const charsLen: number = chars.length<br>        for (let i = 0; i < len; i++) {<br>            codeList.push(chars.charAt(Math.floor(Math.random() * charsLen)))<br>        }<br>        const identifyCode = codeList.join('')<br>        console.log(identifyCode)<br>        form.sureCode = identifyCode<br>        //绘制图片<br>        const canvas: HTMLElement | null | any = document.getElementById('cancasCode')<br>        //画布<br>        const ctx = canvas.getContext('2d')<br>        ctx.textBaseline = 'bottom'<br>        //随机背景色<br>        ctx.fillStyle = randomColor(0, 255)<br>        //绘制矩形的长框(<br>        //    x矩形左上角的 x 坐标。<br>        //    y矩形左上角的 y 坐标。<br>        //    width矩形的宽度,以像素计。<br>        //    height矩形的高度,以像素计。<br>        //   )<br>        ctx.fillRect(0, 0, 100, 40)<br>        //绘制文字<br>        for (let i = 0; i < identifyCode.length; i++) {<br>            //文字颜色<br>            ctx.fillStyle = randomColor(0, 255)<br>            // 文字大小<br>            ctx.font = randomNum(12, 30) + 'px SimHei'<br>            const x = (i + 1) * (100 / (identifyCode.length + 1))<br>            const y = randomNum(30, 35)<br>            var deg = randomNum(-45, 45)<br>            //修改坐标原点与角度<br>            ctx.translate(x, y)<br>            ctx.rotate(deg * (Math.PI / 180))<br>            ctx.fillText(identifyCode[i], 0, 0)<br>            //恢复坐标原点<br>            ctx.rotate(-deg * (Math.PI / 180))<br>            ctx.translate(-x, -y)<br>        }<br>    }

以上就是视频直播源码,前端canvas动态验证码实现, 更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2022-03-10 一对一聊天源码,验证码生成随机数字排列组合
2022-03-10 直播app开发,滑动式的顶部导航栏(左右横向滑动)
2022-03-10 手机直播源码,android 轮播图自定制组件
点击右上角即可分享
微信分享提示