视频直播源码,前端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动态验证码实现, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-03-10 一对一聊天源码,验证码生成随机数字排列组合
2022-03-10 直播app开发,滑动式的顶部导航栏(左右横向滑动)
2022-03-10 手机直播源码,android 轮播图自定制组件