当前位置:   article > 正文

【微信小程序调用百度API实现图像识别功能】----项目实战

小程序调用百度api

本章主要讲述:

如何更快的上手小程序

如何搭建一个页面以及跳转到另一个页面

如何调用百度API接口实现图像识别技术

如何在微信小程序的后台添加合法域名

      私信获取源码,有问题可以关注留言或私信,计算机毕业设计(小程序,网页设计,数据库,php开发等)

目录

 一.小程序安装及项目创建

1.1安装工具 

 1.2项目创建

 二.小程序的语法结构

2.1 小程序和HTML5的区别

 三.创建页面

3.1功能模块

3.2编写页面 

3.3获取access_token  

四.项目演示


 一.小程序安装及项目创建

1.1安装工具 

 开发工具:微信开发者工具

 推荐使用稳定版,根据机型选择下载

 1.2项目创建

 1.2.1自己先用邮箱创建账号并激活,然后,进入小程序开发管理

 1.2.2在这里获取APPID,用它来创建项目即可

1.2.3 创建完成后,我们可以看到如下界面,分为一下几个功能区:

1.2.4接下来就是认识小程序的目录结构 

1.2.5小程序包含一个描述整体程序的 app 和多个描述各自页面的 page

一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:

 二.小程序的语法结构

2.1 小程序和HTML5的区别

主要说明以下三点

1.标签

2.页面跳转

HTML5:  <a href='#'></a>

微信小程序: navigator

navigator支持相对路径和绝对路径的跳转,默认是打开新页面,当前页面打开需要加redirect;

navigator仅支持5级页面的跳转;

navigator不可跳转到小程序外的链接地址;

3.image

小程序的image与HTML5的img最大的区别在于:小程序的image是按照background-image来实现的。

默认image的高宽是320*240。必须通过样式定义去覆盖这个默认高宽,auto在这里不生效。(开发者说这样设置的原因是:如果设置 auto ,页面布局会因为图片加载的过程有一个闪的现象(例如高度从 0 到 height ),所以要求一定要设置一个宽度和高度。)

最新的api支持获取图片的高宽。不过这里返回的高宽是px单位,不支持屏幕自适应;

图片包括三种缩放模式scaleToFill、aspectFit、aspectFill,三种缩放模式的实现原理对应如下:

scaleToFill{

background-size:100% 100%;//不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素

}

aspectFit{

background-size:contain;//保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。

}

aspectFill{

background-size:cover;//保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。

}

 三.创建页面

3.1功能模块

3.1.1我们先在一个页面添加一个功能模块,index.js(注意路径),目的是点击'我要当商家'进行跳转

  1. const menuData = [
  2. [
  3. {
  4. title: '我要当商家',
  5. tit: '',
  6. url: '',
  7. type: 'shopping',
  8. },
  9. ],
  10. ];
  11. onClickCell({ currentTarget }) {
  12. const { type } = currentTarget.dataset;
  13. switch (type) {
  14. case 'shopping': {
  15. wx.navigateTo({ url: '/pages/usercenter/shopping/shopping' });
  16. break;
  17. }
  18. }
  19. },

3.1.2 我们需要在app.json里面配置跳转目标页面的路径,当输入完后会自动生成文件目录

3.2编写页面 

 3.2.1写入shopping.json文件中

  1. {
  2. "navigationBarTitleText": "商家功能中心",
  3. "usingComponents": {}
  4. }

3.2.2写入shopping.wxml文件中(简单示例)

  1. <!-- <view class="container">
  2. <view class="upload-image-container">
  3. <button bindtap="chooseMedia">选择图片</button>
  4. <image src="{{imageUrl}}" mode="aspectFit"></image>
  5. </view>
  6. <view class="result-container">
  7. <view class="result-title">识别结果:</view>
  8. <view class="result-content">{{result}}</view>
  9. </view>
  10. </view> -->

 3.2.3写入shopping.wxss文件中

  1. /* .container {
  2. display: flex;
  3. flex-direction: column;
  4. align-items: center;
  5. justify-content: center;
  6. }
  7. .upload-image-container, .result-container {
  8. margin-top: 20px;
  9. }
  10. .upload-image-container button {
  11. background-color: #4e7af0;
  12. color: white;
  13. border-radius: 4px;
  14. padding: 10px;
  15. font-size: 16px;
  16. border: none;
  17. margin-bottom: 10px;
  18. }
  19. .result-container .result-title {
  20. font-size: 18px;
  21. margin-bottom: 10px;
  22. }
  23. .result-container .result-content {
  24. font-size: 16px;
  25. } */

3.2.4写入shopping.js文件中 wx.chooseMedia(Object object)详见官方技术开发文档点击https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseMedia.html

  1. // // pages/usercenter/shopping/shopping.js
  2. // Page({
  3. // /**
  4. // * 页面的初始数据
  5. // */
  6. // data: {
  7. // imageUrl: '',
  8. // result: ''
  9. // },
  10. // /**
  11. // * 生命周期函数--监听页面加载
  12. // */
  13. // onLoad(options) {
  14. // },
  15. // /**
  16. // * 用户上传图片
  17. // */
  18. // chooseMedia: function() {
  19. // const that = this
  20. // wx.chooseMedia({
  21. // count: 1,
  22. // mediaType: ['image'],
  23. // sourceType: ['album', 'camera'],
  24. // // maxDuration: 30,
  25. // camera: 'back',
  26. // success: function (res) {
  27. // const imageBase64 = res.data
  28. // // 图片上传至百度AI接口进行图像识别
  29. // wx.request({
  30. // url: 'https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general',
  31. // method: 'POST',
  32. // dataType: 'json',
  33. // header: {
  34. // 'content-type': 'application/x-www-form-urlencoded'
  35. // },
  36. // data: {
  37. // access_token: '', // 替换为自己的access_token
  38. // image: imageBase64,
  39. // BaiDuClassify: 'true'
  40. // },
  41. // success: function(res) {
  42. // console.log('图像识别成功')
  43. // console.log(res)
  44. // const result = res.data.result
  45. // if (result && result.length > 0) {
  46. // that.setData({
  47. // classification: result[0].keyword
  48. // })
  49. // } else {
  50. // that.setData({
  51. // classification: '无法识别'
  52. // })
  53. // }
  54. // },
  55. // fail: function(res) {
  56. // console.log('图像识别失败')
  57. // console.log(res)
  58. // that.setData({
  59. // classification: '无法识别'
  60. // })
  61. // }
  62. // })
  63. // }
  64. // })
  65. // },
  66. // /**
  67. // * 生命周期函数--监听页面初次渲染完成
  68. // */
  69. // onReady() {
  70. // },
  71. // /**
  72. // * 生命周期函数--监听页面显示
  73. // */
  74. // onShow() {
  75. // },
  76. // /**
  77. // * 生命周期函数--监听页面隐藏
  78. // */
  79. // onHide() {
  80. // },
  81. // /**
  82. // * 生命周期函数--监听页面卸载
  83. // */
  84. // onUnload() {
  85. // },
  86. // /**
  87. // * 页面相关事件处理函数--监听用户下拉动作
  88. // */
  89. // onPullDownRefresh() {
  90. // },
  91. // /**
  92. // * 页面上拉触底事件的处理函数
  93. // */
  94. // onReachBottom() {
  95. // },

3.3获取access_token  

3.3.1首先进入百度AI开发平台   以文字识别为例 ,点击立即使用,然后先注册百度账号进行登录

 

 3.3.2登录后点击创建应用,按照需求创建即可

 3.3.3点击应用列表就可以看到相关信息

 3.3.4然后点击技术文档,查看获取token的几种方法,就能成功获取access_token

 

3.3.5注意:我们获取到token的时候写入shopping.js中,然后进行预览 ,会出这样的错误

 

3.3.6是因为我们没有在 微信小程序的后台添加合法域名,方法如下:

 

 重新编译就可成功

四.项目演示

 

 

       私信获取源码,有问题可以关注留言或私信,计算机毕业设计(小程序,网页设计,数据库,php开发等)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/374115
推荐阅读
相关标签
  

闽ICP备14008679号