最近有一个需要识别图片中文字的需求,引入腾讯ai并不难,复杂的地方在于要用云开发实现。所以在此记录一下,可以给需要的朋友们一个启发。
1 安装依赖
npm install qqai-api-sdk
2 小程序端代码
wx.cloud.callFunction({
name: 'ocrTest',
data: {
str:res0.fileID,//根据具体识别方法上传参数,这里本来应该上传图片Base64,但是因为过大,所以预先上传图片,这里只是上传图片id,在云函数中再转换为数据。具体可以看我《云函数参数过大导致无响应》的文章。
},
success: res0 => {
。。。
},
fail: err => {
console.error('[云函数] [ocrtest] 调用失败', err)
}
})
3 云函数代码
const cloud = require('wx-server-sdk')
cloud.init()
const { OCR } = require('qqai-api-sdk');
const APP = {
// 设置请求数据(应用密钥、接口请求参数),替换为自己的参数,可以在腾讯云上申请。
appkey: '*****************',
appid: '*************'
}
const ocr = new OCR(APP.appkey, APP.appid);
exports.main = async (event, context) => {
const img = await cloud.downloadFile({
fileID: event.str,
})
let buffer =new Buffer(img.fileContent)
cloud.deleteFile({
fileList: [event.str],
success: res => {
// handle success
console.log(res.fileList)
},
fail: err => {
// handle error
},
complete: res => {
// ...
}
})
return new Promise((resolve, reject) => {
ocr.generalocr({
imageBase64String:buffer.toString('base64'),
}).then((res) => {
resolve(JSON.stringify(res));
}, (e) => {
reject(JSON.stringify(e));
})
});
}
以上是我用到的图片识别,插件还有很多其他ai接口,如果需要可以在node_modules/qqai-api-sdk/src下面的js找。将找到的参数和类替换到上面的云函数即可。
长期广告:过年在家没闲着,公司想给市场部做个在线答题,找半天找不到合适的小程序,一怒之下自己写了一个,匆忙间不足甚多,欢迎指正。
image
网友评论