1. 程式人生 > 其它 >微信小程式雲開發-雲端儲存的應用-識別通用印刷體

微信小程式雲開發-雲端儲存的應用-識別通用印刷體

一、準備工作

1、建立雲函式identify

2、雲函式identify中index.js程式碼

 1 // 雲函式入口檔案
 2 const cloud = require('wx-server-sdk')
 3 
 4 //cloud.init()
 5 //環境變數初始化 
 6 cloud.init({
 7   evn:cloud.DYNAMIC_CURRENT_ENV   //標誌當前所在環境
 8 })
 9 
10 // 雲函式入口函式
11 exports.main = async (event,context) => {
12   const wxContext = cloud.getWXContext()
13 if(event.action=="1"){ //action為1 返回身份證的資訊 14 try { 15 const result = await cloud.openapi.ocr.idcard({ 16 "type": 'photo', 17 "imgUrl": event.imgUrl 18 }) 19 return result 20 } catch (err) { 21 return err 22 } 23 }else if(event.action=="2"){ //action為2 返回銀行卡的資訊
24 try { 25 const result = await cloud.openapi.ocr.bankcard({ 26 "type": 'photo', 27 "imgUrl": event.imgUrl 28 }) 29 return result 30 } catch (err) { 31 return err 32 } 33 }else if(event.action=="3"){ //action為3 返回駕駛證的資訊 34 try { 35 const result = await cloud.openapi.ocr.driverLicense({
36 "type": 'photo', 37 "imgUrl": event.imgUrl 38 }) 39 return result 40 } catch (err) { 41 return err 42 } 43 }else if(event.action=="4"){ //action為4 返回行駛證的資訊 44 try { 45 const result = await cloud.openapi.ocr.vehicleLicense({ 46 "type": 'photo', 47 "imgUrl": event.imgUrl 48 }) 49 return result 50 } catch (err) { 51 return err 52 } 53 }else if(event.action=="5"){ //action為5 返回營業執照的資訊 54 try { 55 const result = await cloud.openapi.ocr.businessLicense({ 56 "imgUrl": event.imgUrl 57 }) 58 return result 59 } catch (err) { 60 return err 61 } 62 }else if(event.action=="6"){ //action為6 返回通用印刷體的資訊 63 try { 64 const result = await cloud.openapi.ocr.printedText({ 65 "imgUrl": event.imgUrl 66 }) 67 return result 68 } catch (err) { 69 return err 70 } 71 } 72 }

二、建立頁面並寫相應程式碼

建立頁面IdentifyPrintedText,用於OCR識別通用印刷體

1、IdentifyPrintedText.wxml

 1 <!-- 識別通用印刷體資訊 -->
 2 <button bindtap="IdentifyPrintedText" type="primary">識別通用印刷體</button>
 3 <!-- 把識別到的通用印刷體圖片顯示到頁面上 -->
 4 <view class="idcard">
 5 <image src="{{IdentifyPrintedTextURL}}" ></image>
 6 </view>
 7 <!-- 把識別到的通用印刷體資訊顯示到頁面上 -->
 8 <view class="front" wx:if="{{showdPrintedText}}">
 9   <view wx:for="{{PrintedTextMsg.items}}" wx:key="index" class="con">{{item.text}}</view>
10   <view class="imgSize">【圖片大小】:{{PrintedTextMsg.imgSize.w}}*{{PrintedTextMsg.imgSize.h}}</view>
11 </view>

2、IdentifyPrintedText.wxss

 1 button{
 2   margin: 20rpx;
 3 }
 4 .front{
 5   margin: 20rpx;
 6 }
 7 
 8 .idcard{
 9   text-align: center;
10 }
11 .idcard image{
12   width: 95%rpx;
13   height: 600rpx;
14 }
15 .imgSize{
16 margin-top: 100rpx;
17 }

3、IdentifyPrintedText.js

 1 // pages/IdentifyDriverLicense/IdentifyDriverLicense.js
 2 Page({
 3   //初始化資料
 4     data:{
 5       showdBusinessLicense:false,
 6       BusinessLicenseMsg:{}
 7     },
 8   
 9   //識別駕駛證資訊
10   IdentifyPrintedText(){
11       //選擇圖片
12       wx.chooseImage({
13       count: 1,
14       sizeType: ['original', 'compressed'],
15       sourceType: ['album', 'camera'],
16     }).then(res=>{
17       console.log("圖片選擇成功",res);
18       console.log("所選圖片的臨時連結",res.tempFilePaths[0]);
19       //上傳圖片
20       wx.cloud.uploadFile({
21         cloudPath: (new Date()).valueOf()+'.png',
22         filePath: res.tempFilePaths[0], 
23       }).then(res=>{
24         console.log("圖片上傳到雲端儲存成功",res);
25         console.log("圖片在雲端儲存裡的fileID",res.fileID);
26         //將上傳成功的圖片顯示到頁面上
27         this.setData({
28           IdentifyPrintedTextURL:res.fileID,
29         })
30         //獲取圖片真實URL
31         wx.cloud.getTempFileURL({
32           fileList:[res.fileID]
33         }).then(res=>{
34           console.log("獲取圖片真實連結成功",res);
35           //識別身份證背面資訊
36           wx.cloud.callFunction({
37             name:"identify",
38             data:{
39               imgUrl:res.fileList[0].tempFileURL,   //傳遞引數給雲函式
40               action:"6"       //action為1表示身份證,2表示銀行卡,3表示駕駛證,4表示行駛證,5表示營業執照,6表示通用印刷體(在雲函式中自定義的)
41             }
42           }).then(res=>{
43             console.log("圖片識別成功",res);
44             this.setData({
45               PrintedTextMsg:res.result,
46               showdPrintedText:true
47             })  
48           }).catch(err=>{
49             console.log("圖片識別失敗",err);
50           })
51         }).catch(err=>{
52           console.log("獲取圖片真實連結失敗",err);
53         })   
54       }).catch(err=>{
55         console.log("圖片上傳到雲端儲存失敗",err);
56       })
57   
58     }).catch(err=>{
59       console.log("圖片選擇失敗",err);
60     }) 
61     }
62   })

三、效果展示