【征稿计划第二期】用百度智能小程序来了解红酒
756665228 发布于2019-07-28 22:59 浏览:1797 回复:7
1
收藏
最后编辑于2020-04-20

【使用攻略】【图像识别】【红酒识别】

本期活动,小帅就来带开发者们快速将红酒识别接入百度智能小程序哦

各位开发者 接口文档一定要看哦

接口文档 https://ai.baidu.com/docs#/ImageClassify-API/71e05fb6

如何创建应用。获取accesstoken 记得一定要看文档的接入指南哦。官方已经给了图文教程。小帅这里就不再重复说明了。

图片不清晰的请看这里  https://my.oschina.net/xshuai/blog/3075992

--------------------------------------------分割线--------------------------------------------

  • 创建自己的百度智能小程序
官网链接  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

先来写接口工具类等其他方法

baiduai.js

/**
 * 调用百度红酒识别示例代码 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
}
  • 编写页面样式及相关代码

  • 页面index.swan
页面需要一个上传图片的按钮 和图片回显的区域 还有接口识别返回的数据显示的区域

带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~~~

大家也可以用百度app 扫码体验哈

收藏
点赞
1
个赞
共7条回复 最后由自尊心3回复于2020-04-20 10:23
#8自尊心3回复于2020-04-20 10:23:40

大佬全栈ai开发者

0
#7756665228回复于2020-04-11 22:41:35
#6 wangwei8638回复
百度智能小程序需要认证费或年费吗?是认证一次就可以,还是每年认证审核一次? 
展开

企业认证我记得需要打款确认 是百度给你打钱 应该没有什么年费认证的吧 建议你最好是去智能小程序文档看看

0
#6wangwei8638回复于2020-04-10 16:55:16
#5 756665228回复
百度做的东西很多的

百度智能小程序需要认证费或年费吗?是认证一次就可以,还是每年认证审核一次? 

0
#5756665228回复于2019-08-07 13:04:48
#4 wangwei8638回复
头次见百度小程序应用

百度做的东西很多的

1
#4wangwei8638回复于2019-08-06 23:08:01

头次见百度小程序应用

0
#3大手拉小手0123回复于2019-07-29 13:02:59

红酒的知识可是真不少呢

0
TOP
切换版块