用uniapp在微信小程序实现画板(电子签名)功能

目录

一、效果展示

二、插件推荐与引入

三、代码具体应用

四、h5端将base64转换为url

一、效果展示

二、插件推荐与引入

手写板、签字板;<zwp-draw-pad /> - DCloud 插件市场

这个在微信小程序引入时内容简单,且涉及的方法很多,可满足撤销、删除、保存、画笔颜色修改等操作。其中保存的图片结果是base64,可借助微信小程序的转换方法将其转换为url临时地址。

三、代码具体应用

	<view class="content"><zwp-draw-pad :width="w" :height="h" ref="drawPad" /><view class="sa" @click="onCancel()">撤销</view><view class="sa" @click="onSave()">保存</view><view class="sa" @click="onClear()">清除</view></view>
<script>
import { base64src } from "../../utils/base64src.js"; // 后面引用路径为base64src.js文件路径export default {data() {return {w: 375,h: 375,}},methods: {onSave() {this.$refs.drawPad.save().then(res => {console.log('保存图片的地址', res.tempFilePath)base64src( res.tempFilePath, (res) => {console.log(res); // 转换后的临时连接路径});})},onCancel() {this.$refs.drawPad.back()},onClear() {this.$refs.drawPad.init()this.$refs.drawPad.clearCache()},}}
</script>

其中通过this.$refs.drawPad.originData.length 是否>0来判断是否在画板上进行了签名

借助工具函数,使用引入即可!

const base64src = (base64data, fun) => {const base64 = base64data; //base64格式图片const time = new Date().getTime();const imgPath = wx.env.USER_DATA_PATH + "/poster" + time + "share" + ".png";//如果图片字符串不含要清空的前缀,可以不执行下行代码.const imageData = base64.replace(/^data:image\/\w+;base64,/, "");const file = wx.getFileSystemManager();file.writeFileSync(imgPath, imageData, "base64");fun(imgPath);
};
export { base64src };

四、h5端将base64转换为url

			base64ImgtoFile (dataurl, filename = 'file') { const arr = dataurl.split(',')const mime = arr[0].match(/:(.*?);/)[1]const suffix = mime.split('/')[1]const bstr = atob(arr[1])let n = bstr.lengthconst u8arr = new Uint8Array(n)while (n--) { u8arr[n] = bstr.charCodeAt(n)}return new File([u8arr], `${ filename}.${ suffix}`, { type: mime})},
let file = this.getBase64ImageUrl(res.tempFilePath) // 得到File对象(res.tempFilePath即为base64形式)
this.imgUrl = window.webkitURL.createObjectURL(file) || window.URL.createObjectURL(file) // imgUrl图片网络路径

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/210768.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 异常的传递性

实例 这里就简单用2个function来演示一下异常的传递性 func1 这里num 1/0明显是一个ZeroDivisionError错误&#xff0c;作为演示 def func1():print("fun1 开始执行")num 1 / 0print("func1 结束执行") func2 def func2():print("func2 开始执…

NB水表能承受最大的水压是多少?

NB水表&#xff0c;作为新一代智能水表&#xff0c;以小巧的体积、稳定的性能和强大的功能赢得了市场的认可。那么&#xff0c;它究竟能承受多大的水压呢&#xff1f;接下来&#xff0c;小编来为大家揭秘下&#xff0c;一起来看下吧&#xff01; 一、NB水表概述 NB水表&#xf…

详解开源数据库审计平台Yearning

基本概念 数据库审计&#xff08;简称DBAudit&#xff09;能够实时记录网络上的数据库活动&#xff0c;对数据库操作进行细粒度审计的合规性管理&#xff0c;对数据库遭受到的风险行为进行告警&#xff0c;对攻击行为进行阻断。它通过对用户访问数据库行为的记录、分析和汇报&…

Win11和NewBing浏览器100%开启Copilot的方法

严格按以下步骤来&#xff0c;100%开启免费的AI&#xff1a; 1.系统升级到Win11最新版&#xff08;不要用家庭版&#xff0c;推荐专业版&#xff09; 升级完成之后的系统信息&#xff08;时间截至2023.11.22&#xff09; 版本号&#xff1a;23H2 操作系统版本&#xff1a;226…

如何挑选最适合的APP开发公司

随着科技的不断发展&#xff0c;app开发公司如雨后春笋般涌现&#xff0c;让人眼花缭乱。如何挑选最合适的app开发公司&#xff0c;成为了很多项目负责人的难题。本文将为你提供挑选app开发公司的三大秘籍&#xff0c;让你轻松找到最合适的合作伙伴&#xff0c;让你的项目飞起来…

shell循环语句 for while until

目录 什么是循环语句 概念 for循环 格式 while循环 格式 until 循环 格式 实验 for &#xff08;1&#xff09;计算1到100的和 ​编辑 &#xff08;2&#xff09;100以内的偶数 &#xff08;从0开始到100结束&#xff0c;每次加2步 打印的都是偶数&#xff09; &…

java学习part08权限

1.权限表格 外部类都是公有和缺省&#xff0c;因为其他两种对于外部类没有意义 一些内部成分都各种权限都可以 2.如何体现java封装性 答&#xff0c;通过权限控制&#xff0c;保证哪些可以给人看到&#xff0c;哪些不能

玻色量子“揭秘”之集合划分问题与QUBO建模

摘要&#xff1a;集合划分问题&#xff08;Set Partitioning Problem&#xff09;是一种组合优化问题&#xff0c;其中给定一个集合S和其若干个不同的子集S1&#xff0c;S2&#xff0c;...&#xff0c;Sn后&#xff0c;需要找到子集的有效组合&#xff0c;使得集合S的每个元素正…

基于YOLO模型建筑工地个人防护设备目标检测

使用安全装备可以保护他们免受建筑工地的意外事故。据统计&#xff0c;每年有数以万计的工人在建筑工地受到严重伤害&#xff0c;造成终生困难。然而&#xff0c;通过自我监控来确保工人穿戴个人防护装备非常重要。在这方面&#xff0c;需要一个准确和快速的系统来检测工人是否…

如何弱化市场大环境带来的影响?私域电商和裂变营销引来新趋势!

弱化市场大环境带来的影响需要从多个方面入手&#xff0c;包括深入了解市场和行业、建立品牌优势、多元化经营、优化供应链管理、加强客户关系管理、灵活应对市场变化等。同时需要注意不同领域和行业的市场变化和政策调整&#xff0c;及时调整经营策略和业务结构&#xff0c;保…

腾讯又出王炸产品!使用混元大模型进行数据报表测试

最近腾讯出了自己的大模型&#xff0c;命名混元。 现在已经开始内测&#xff0c;感谢腾讯小伙伴卢晓明同学帮我们提前申请到了内测机会&#xff0c;接下来我们用腾讯混元大模型与实际工作结合&#xff0c;开始我的报表测试之旅。 腾讯混元大模型官方入口:https://hunyuan.ten…

Raptor安装

Raptor官网:https://raptor.martincarlisle.com/ 进入官网后&#xff0c;下拉找到 Download RAPTOR&#xff0c;windows系统的选择Windows Users 下载完成后打开&#xff0c;选择“next” 修改一下路径&#xff0c;不要放到C: 继续next 完结撒花