这一张图片大小是 316K,是发请求的
这张图片大小是49.3K 不发请求的
<!--logs.wxml-->
<view class="container log-list">
<view>
<image src="{{img}}" ></image>
</view>
<button bindtap="getCode">选择照片</button>
<view>
<text>识别结果:{{number}}</text>
</view>
</view>
//logs.js
Page({
data: {
access_token: '',
img: "",
number: ""
},
onLoad: function () {
},
// 获取access_token
onShow: function () {
let access_token = wx.getStorageSync('access_token')
if (access_token) {
this.setData({
access_token
})
} else {
wx.request({
// https://ai.baidu.com/ai-doc/OCR/dk3h7y5vr 可以去申请
url: '百度智能云获取access_token',
success: (data) => {
const {
data: {
access_token
}
} = data;
wx.setStorageSync('access_token', access_token)
this.setData({
access_token
})
},
fail: (err) => {
console.log(err)
}
})
}
},
// 选择图片
choseImg() {
return new Promise((resolve, rejset) => {
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success: (res) => {
this.setData({
img: res.tempFilePaths[0]
})
resolve(res.tempFilePaths[0])
},
fail: (err) => {
wx.showToast({
title: '未选择图片',
icon: "none"
})
rejset(err)
}
})
})
},
// 压缩图片
async MyImageCompression() {
let result = await this.choseImg()
return new Promise((resolve, rejset) => {
// 压缩以后转base64
wx.compressImage({
src: result,
quality: 0,
success: function (res) {
resolve(res.tempFilePath)
},
fail: err => {
rejset(err)
}
})
})
},
// 将图片转为base64
toBase64(imgUrl) {
return new Promise((resolve, rejset) => {
wx.getFileSystemManager().readFile({
filePath: imgUrl, //选择图片返回的相对路径
encoding: 'base64', //编码格式
success: res => { //成功的回调
resolve(res.data)
},
fail: err => {
rejset(err)
},
complete: value => {
console.log(value)
}
})
})
},
async getCode() {
//压缩图片
let result = await this.MyImageCompression()
// 转base64
let base64 = await this.toBase64(result)
this.baiduCode(base64)
},
baiduCode(base64) {
console.log(base64)
const {
access_token
} = this.data
wx.request({
url: "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token=" + access_token,
method: "POST",
header: {
"Content-Type": "application/x-www-form-urlencoded"
},
data: {
image: base64
},
success: res => {
const {
data
} = res
if (data && !data.words_result) {
return wx.showToast({
title: '车牌识别失败',
icon: "none"
})
} else {
const {
data: {
words_result: {
number
}
}
} = res
this.setData({
number
})
}
},
fail: err => {
console.log(err)
},
complete: value => {
console.log(value)
}
})
},
})
网友回复
社区技术运营专员-Riven:
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)