wx.request 默认返回数据类型是json,会把二进制转化成string,再转base64,当然没有结果。
wx.request 设置 responseType: 'arraybuffer',
小程序使用腾讯优图实现人脸检测
wx.request(OBJECT)
使用接口
https://youtu.api.qcloud.com/youtu/api/detectface
这里说明了这个接口需要一个签名和appid,图片数据需要转成base64
本来是使用canvas实现图片截图,在通过upng.js 转成base64位截图,但是后来发现这样生成的图片文件量太大了;
导致检测接口经常超过限制5M;
wx.request(OBJECT)有个参数responseType设置响应参数数据,再通过wx.arrayBufferToBase64()转成base64
wx.request({
url:path,//图片路径
method:'GET',
responseType: 'arraybuffer',
success:function(res){
let base64 = wx.arrayBufferToBase64(res.data)
that.getSignature(base64, path)//获取签名
}
})
签 名Signature和appid通过后台服务器设置传给你
之后就可以发送请求到 http://open.youtu.qq.com/youtu/api/detectface 接口了
wx.request({
url: 'http://open.youtu.qq.com/youtu/api/detectface',
data: {
'app_id': 'id',//优图appid
'image': base64,
'mode': 1,
},
method: 'POST',
header: {
'Content-type': 'text/json', // text
'Authorization': signature, //签名
},
success: function(res) {
console.log(res.data)
var data = res.data
var code = data.errorcode
if(code == 0){
console.log(face_info)
console.log('存在头像')
}else{
console.log('不存在头像')
}
}
})
这里有几点要注意的,文档上面传字段
请求头
signature 修改为 Authorization
请求包体
id 修改为 app_id
接口返回数据
errorcode为0的时候表示识别出人脸了
其他状态都是无法识别出人脸
如:
总的来说 接口功能很强大 响应速度也非常快
这个平台还有好多接口,暂时未探索
文档
优图人脸识别文档
腾讯优图开放平台
微信小程序开发文档
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)