用canvas实现手写签名功能

简介: 用canvas实现手写签名功能

更多文章

最近开发网站有一个需求,要求页面上有一块区域,用户能用鼠标在上面写字,并能保存成图片 base64 码放在服务器。

这样的需求用 canvas 实现是最好的。

需要用到 canvas 的以下几个属性:

  • beginPath 创建一个新的路径
  • globalAlpha 设置图形和图片透明度的属性
  • lineWidth 设置线段厚度的属性(即线段的宽度)
  • strokeStyle 描述画笔(绘制图形)颜色或者样式的属性,默认值是 #000 (black)
  • moveTo(x, y) 将一个新的子路径的起始点移动到(x,y)坐标的方法
  • lineTo(x, y) 使用直线连接子路径的终点到x,y坐标的方法(并不会真正地绘制)
  • closePath 它尝试从当前点到起始点绘制一条直线
  • stroke 它会实际地绘制出通过 moveTo() 和 lineTo() 方法定义的路径,默认颜色是黑色

除了用到这些属性外,还需要监听鼠标点击和鼠标移动事件。

废话就不多说了,直接上代码DEMO

我对代码做了扩展,除了支持画笔,还支持喷枪、刷子、橡皮擦功能。

canvas 转成图片

将 canvas 转成图片,需要用到以下属性:

  • toDataURL

canvas.toDataURL() 方法返回一个包含图片展示的 data URI 。可以使用 type 参数其类型,默认为 PNG 格式。图片的分辨率为96dpi。

const image = new Image()
    // canvas.toDataURL 返回的是一串Base64编码的URL
    image.src = canvas.toDataURL("image/png")
目录
相关文章
|
资源调度 前端开发
postcss-px-to-viewport 屏幕适配方案
postcss-px-to-viewport 屏幕适配方案
Flutter 121: 图解简易 Slider 滑动条
0 基础学习 Flutter,第一百二十一步:简单学习 Slider 滑动条!
1967 0
Flutter 121: 图解简易 Slider 滑动条
|
4月前
|
Docker 容器
nexus3 docker compose部署
本配置使用 Docker Compose 快速部署 Nexus Repository Manager 3.87.2。通过映射端口 8081、挂载持久化数据卷(nexus-data),并设置正确权限(UID/GID 200),确保服务稳定运行,支持制品仓库管理。
277 3
|
11月前
你为什么卸载了WPS?WPS 如何卸载干净?卸载不了WPS?看这里
本文介绍了如何彻底卸载电脑软件,包括WPS、Office 2016及Steam游戏等,分析了软件卸载不干净的原因,并推荐使用第三方工具如Geek进行深度清理,帮助用户解决残留文件、注册表项和服务项问题,确保系统运行更流畅。
1991 1
|
5月前
|
安全 算法 数据安全/隐私保护
给文档盖上“隐形印章”——全新PDF内嵌字体水印技术,让每一份文件都有迹可循
合肥高维数据首创PDF内嵌字体水印技术,通过微观重构字体结构,实现水印无感嵌入、精准提取,兼具隐形性与抗干扰能力。广泛应用于企业保密、版权保护、法律审计与教育领域,为每份文档赋予唯一“数字身份证”,重新定义文档安全新标准。(238字)
268 4
|
JavaScript 前端开发
JavaScript实现手写签名,可触屏手写,支持移动端与PC端双端保存
JavaScript实现手写签名,可触屏手写,支持移动端与PC端双端保存
772 0
|
机器学习/深度学习 人工智能 IDE
Cursor免费 GPT-4 IDE 工具的保姆级使用教程
本文介绍了Cursor这一基于人工智能技术的代码生成工具,包括其特点(利用自然语言处理和深度学习算法,可生成高质量代码,支持多种编程语言,能在多种操作系统上运行)及使用教程。教程内容涵盖下载(通过官网获取对应系统版本并安装)、初始化配置(如配置快捷键、AI指定语言,导入VS Code扩展,设置数据偏好,登录/注册)、安装插件(设置Cursor中文、配置gitee)、配置模型和Key(选择模型、配置密钥、自定义模型并进行测试)以及如何使用(打开提示词面板)等步骤。
14321 6
 Cursor免费 GPT-4 IDE 工具的保姆级使用教程
|
Shell Android开发
ADB更改Android设备屏幕显示方向
ADB更改Android设备屏幕显示方向
1803 5
|
JavaScript 前端开发
基于51单片机直流电机PWM控制器设计
基于51单片机直流电机PWM控制器设计
基于51单片机直流电机PWM控制器设计