接口文档 https://ai.baidu.com/docs#/ImageClassify-API/71e05fb6html
如何建立应用。获取accesstoken 记得必定要看文档的接入指南哦。官方已经给了图文教程。小帅这里就再也不重复说明了。小程序
图片不清晰的请看这里 https://my.oschina.net/xshuai/blog/3075992api
--------------------------------------------分割线--------------------------------------------服务器
官网连接 https://smartprogram.baidu.com/developer/index.html
名称须要审核哦最好不要重名、选择一个本身小程序的LOGO、简介、服务范围(必定要选择正确哦)、标签就本身找针对性的关键词添加便可
设置-开发设置 记录本身的小程序id appkey、appsecret等相关重要信息 备用
继续往下。找到服务器域名 并配置百度ai接口域名 和 图片转base64的域名 https://www.ydxiaoshuai.cn https://aip.baidubce.com
填写本身小程序的appid、名称、项目目录后点击完成便可
图片转base64 百度智能小程序暂无直接可用组件或api。 小帅为了方便你们。就封装了一个在线的http的接口供你们使用。 接口说明地址 https://www.kancloud.cn/ydxiaoshuai/image2base64/1170322
先来写接口工具类等其余方法app
baiduai.jside
/** * 调用百度红酒识别示例代码 baiduai.js */ //图片转base64接口 let img2base64Url = 'https://www.ydxiaoshuai.cn/image/convert/base64/v1'; let accessToken = ''//本身的accessToken 根据实际状况能够进行封装 自动获取token let redwineUrl = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/redwine';//红酒识别接口 //红酒接口 图片数据 返回结果 let redwineRequest = (base64Img,callback)=>{ //拼接接口body参数 let params = { image:base64Img } //发送接口请求 swan.request({ url: redwineUrl + '?access_token=' + accessToken, data:params, header: { 'content-type': 'application/x-www-form-urlencoded' }, method: 'POST', success:function(res){ callback.success(res.data) }, fail: function (res) { if (callback.fail) callback.fail() } }) } function getImg2base64(){ return img2base64Url; } //暴露出去的接口&参数 module.exports = { redwineRequest: redwineRequest, getImg2base64: getImg2base64 }
页面须要一个上传图片的按钮 和图片回显的区域 还有接口识别返回的数据显示的区域 带html标签代码 总是被自动解析。只能图片示例了
样式index.css工具
给一些稍微友好 好看的ui样式
.image { width: 100%; height: 360rpx; } button{ font-family: 微软雅黑; } text{ font-family: 微软雅黑; } .page-body-info { display: flex; box-sizing: border-box; padding:60rpx; height:840rpx; border-top: 2rpx solid #D9D9D9; border-bottom: 2rpx solid #D9D9D9; align-items: center; justify-content: center; } .faceInfo{ font-size: 28rpx; display:block; margin:0 auto; margin-left: 33%; } .faceInfoValue{ color: #1BA0E1; letter-spacing:0px; } .chooseImg { display:block; margin:0 auto; color: rgb(255, 255, 255); font-size: 40rpx; font-family: 微软雅黑; width: 400rpx; height: 100rpx; text-align: center; line-height: 90rpx; border-radius:50rpx; background-color:#3366FF; margin-top:10px; } .img_wrap { width: 750rpx; height: 620rpx; background: #ececec; } image { width: 100%; height: 100%; max-height: 1 } .msg { margin: 20rpx 0; text-align: center; } .table { margin-top: 10rpx; border: 0px solid darkgray; } .tr { display: flex; width: 100%; justify-content: center; height: 80rpx; } .td { font-size: 28rpx; width:40%; display: flex; justify-content: center; text-align: center; align-items: center; } .bg-w{ } .bg-g{ background: white; } .th { font-size: 28rpx; width: 48%; justify-content: center; background: #3366FF; color: #fff; display: flex; height: 80rpx; align-items: center; } .inner_text{ font-size: 36rpx; color: #1BA0E1; font-family: 微软雅黑; word-break: normal; word-wrap: break-word; } .out_text{ margin-top:20rpx; margin-left: 10rpx; margin-right: 10rpx; border: 1rpx solid rgb(238, 238, 238); padding:10rpx 10rpx; font-size: 36rpx; font-family: 微软雅黑; }
须要上传图片到小帅的图片转base64接口。 返回base64数据。再给接口进行识别。 返回数据进行页面渲染。步骤不是不少哦
var app = getApp(); //引用封装的工具类方法、图片转base64接口地址 var redWine = require('../../utils/baiduai.js'); var img2base64Url = redWine.getImg2base64(); Page({ data: { title: '酒知识 一步即知', result:null, img:"" }, uploads: function() { var that = this; swan.chooseImage({ count: 1, sizeType: ['compressed'], success: res => { let image = ""; if(res.tempFiles[0].size > 4096*1024){ console.info('jinlaile '); swan.showToast({ title: '图片文件过大哦', icon:'none', mask:true, duration:1500 }); }else{ image = res.tempFilePaths[0]; } that.setData({ img:image }), swan.showLoading({ title: '信息正在赶来的路上', mask: true }), //上传图片进行base64转换 swan.uploadFile({ url: img2base64Url, filePath: image, name: 'file', success:function(res){ var data = res.data; console.info('图片转base64返回的结果:'+data.code); //若是成功,进行调用红酒识别接口 if(data.code==200){ redWine.redwineRequest(data.data.base64,{ //接口返回数据。对数据进行赋值 success(res){ swan.hideLoading(); that.setData({ result:res.result }) console.info(res) }, fail(res){ swan.hideLoading(); swan.showModal({ title: '识别失败', content: '稍后再试一试' }); } }) } else { swan.showModal({ title: '图片转换出错', content: '图片转换出错' }); } } }); } }); }, });
版本号、描述 本身定义便可 最低基础库 须要选择哦
开发管理-开发版本 提交审核 也能够选为体验版 供部分人员优先体验
测试帐号 若是没有 填写 无 便可 对本身版本的描述 本身编写便可 提交审核便可
--------------------------------------------分割线--------------------------------------------开发工具
本次分享end~~~测试
做者:小帅