用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.pswp.cn/news/163534.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163534.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163534.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C/C++】排序算法代碼實現

這里&#xff0c;匯總了常見的排序算法具體代碼實現。使用C語言編寫。 排序算法實現 插入排序冒泡排序選擇排序快速排序希爾排序歸并排序 插入排序 #include <stdio.h> #include <stdlib.h>void InsertSort(int arr[],int n){int i,j,temp;for(i 1;i < n;i){ …

Pinia狀態持久化——插件pinia-plugin-persistedstate

pinia-plugin-persistedstate 旨在通過一致的 API 為 Pinia Store 提供持久化存儲。如果希望保存一個完整的 Store&#xff0c;或者需要細粒化配置 storage 和序列化的方式&#xff0c;該插件都提供了相應的功能&#xff0c;并且可以在想要持久化的 Store 上使用相同的配置。 …

Python 異常的傳遞性

實例 這里就簡單用2個function來演示一下異常的傳遞性 func1 這里num 1/0明顯是一個ZeroDivisionError錯誤&#xff0c;作為演示 def func1():print("fun1 開始執行")num 1 / 0print("func1 結束執行") func2 def func2():print("func2 開始執…

tomcat國密ssl測試

文章目錄 程序包準備部署配置訪問測試 程序包準備 下載 tomcat8.5 https://www.gmssl.cn/gmssl/index.jsp 下載 tomcat 國密組件及證書 本次測試所有的程序文件均已打包&#xff0c;可以直接 點擊下載 部署配置 自行完成 完成centos 的jdk配置。 部署tomcat,將 gmssl4t.jar…

數字孿生農村供水工程平臺:為鄉村振興注入新活力

隨著科技的不斷進步&#xff0c;數字孿生技術逐漸成為各行業創新發展的重要驅動力。在水利領域&#xff0c;數字孿生農村供水平臺以其獨特的優勢&#xff0c;為農村供水系統帶來了革命性的變革。本文將為您詳細介紹數字孿生農村供水平臺的核心特點及優勢&#xff0c;帶您領略智…

深度學習常見激活函數:ReLU,sigmoid,Tanh,softmax,Leaky ReLU,PReLU,ELU整理集合,應用場景選擇

文章目錄 1、ReLU 函數&#xff08;隱藏層中是一個常用的默認選擇&#xff09;1.1 優點1.2 缺點 2、sigmoid 函數2.1 優點2.2 缺點 3、Tanh 函數3.1 優點3.2 缺點 4、softmax 函數&#xff08;多分類任務最后一層都會使用&#xff09;5、Leaky ReLU 函數5.1 優點5.2 缺點 6、PR…

mongo DB -- aggregate分組查詢后字段展示

一、分組查詢 在mongoDB中可以使用aggregate中的$group操作對集合中的文檔進行分組,但是查詢后的數據不顯示其他字段,只顯示分組字段 aggregate進行分組示例 db.collection.aggregate([{$group: {_id: "$field"}},]) 查詢后顯示 展開只顯示兩個字段 二、顯示所有字段…

APM工具skywalking部署

一 整體架構 整個架構&#xff0c;分成上、下、左、右四部分&#xff1a; 上部分 Agent &#xff1a;負責從應用中&#xff0c;收集鏈路信息&#xff0c;發送給 SkyWalking OAP 服務器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 數據信息。而我們目前采用的是&…

Rust - cargo項目里多個二進制binary crate的編譯運行

目錄 foo - Cargo.toml - src - - main.rs - - bin - - - other-bin.rs將除默認入口文件外待作為二進制crate處理的文件放在src/bin目錄下 方法一&#xff1a; 命令行增加配置項 --bin xxx cargo run --bin foo // 注意! 這里是包名&#xff0c;不是main cargo run --bin o…

SQL基礎理論篇(九):存儲過程

文章目錄 簡介存儲過程的形式定義一個存儲過程使用delimiter定義語句結束符存儲過程中的三種參數類型流控制語句 存儲過程的優缺點參考文獻 簡介 存儲過程Stored Procedure&#xff0c;SQL中的另一個重要應用。 前面說的視圖&#xff0c;只能勉強跟編程中的函數相似&#xff…

MySQL -- JDBC

1、JDBC是什么&#xff1a; 是SUN公司制定的一套接口(interface)。接口都有調用者和實現者。面向接口調用、面向接口寫實現類&#xff0c;這都屬于面向接口編程。 2、在使用JDBC的六個步驟&#xff1a; 1.注冊驅動&#xff08;告訴Java程序&#xff0c;即將連接的是哪個品牌…

業務系統上云后,如何滿足員工移動辦公快速訪問業務系統的需求?

在企業業務上云的大趨勢下&#xff0c;SaaS應用、云端辦公協同工具等多種遠程辦公應用系統開始大規模普及&#xff0c;企業員工可以隨時隨地訪問云上業務數據。然而現實情況卻十分“打臉”&#xff0c;企業隨時隨地要訪問云上業務的需求越迫切&#xff0c;問題就越大。由于多種…

算法通關村第十二關|白銀|字符串經典基礎面試題

1.反轉問題 1.1 反轉字符串 原題&#xff1a;力扣344. 要求原地修改。 public void reverseString(char[] s) {if (s null || s.length() 0) {return;}int n s.length;for (int left 0, right n - 1; left < right; left, right--) {char temp s[left];s[left] s…

小程序訂閱消息

wx.requestSubscribeMessage({tmplIds: [2IdqlWrqSbjAurzIuW8imeK-ftS8gbhYdZ0icdE],success(res) {console.log(res);// 處理用戶授權結果},fail(err) {console.error(err);// 處理授權請求失敗}});

白楊SEO:2B企業營銷是什么?當下主流的短視頻直播平臺有哪些?企業營銷要做短視頻直播選哪個平臺更好?

今天白楊SEO就正式來講講2B企業營銷選擇哪個短視頻直播平臺更好&#xff1f; 圖片在公眾號&#xff1a;白楊SEO上看。 文章大綱提前看&#xff1a; 1、先說說2B企業營銷是什么&#xff1f; 2、當下主流的短視頻直播平臺有哪些&#xff1f; 3、2B企業營銷要做短視頻直播選哪…

重磅!1區、60年老牌期刊被踢?共5本被剔除!11月SCIE/SSCI期刊目錄更新!

期刊動態&#xff1a;2023年11月SCI、SSCI期刊目錄更新 2023年11月20日&#xff0c;科睿唯安更新了WOS期刊目錄&#xff0c;繼上次10月WOS期刊目錄剔除7本SCIE&SSCI期刊之后&#xff0c;此次11月更新又有5本期刊發生變動&#xff0c;其中有4本SCIE期刊被剔除&#xff0c;1…

Postgresql根據兩表相同字段更新其中一個表的其他數據

有兩個表 table1&#xff08;id,pcode,pname,type&#xff09; 初始數據只有id、pcode&#xff0c;pname、type為空table2&#xff08;id,pcode,pname,type&#xff09; 根據table1和table的相同字段pcode&#xff0c;用table2的數據更新table1的pname和type字段。 例如&…

微信運營神器:從群發到批量添加,讓你的微信營銷更輕松

在這個數字化時代&#xff0c;微信已經成為了我們生活中不可或缺的一部分。對于許多企業和個人來說&#xff0c;微信營銷也是非常重要的一部分。但是&#xff0c;微信營銷并不是一件容易的事情&#xff0c;需要花費大量的時間和精力。為了解決這個問題&#xff0c;今天我們將向…

Linux本地MinIO存儲服務遠程調用上傳文件

&#x1f525;博客主頁&#xff1a; 小羊失眠啦. &#x1f3a5;系列專欄&#xff1a;《C語言》 《數據結構》 《Linux》《Cpolar》 ??感謝大家點贊&#x1f44d;收藏?評論?? 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;…

淘寶返利APP草柴如何綁定淘寶賬號?

草柴APP是一款淘寶、天貓、京東大額優惠券領取及購物返利省錢工具。通過草柴APP綁定淘寶賬號&#xff0c;可領取淘寶大額內部隱藏優惠券&#xff0c;領取成功再購物可享券后價優惠&#xff0c;確認收貨后可獲得淘寶返利。 淘寶返利APP草柴如何綁定淘寶賬號&#xff1f; 1、手…