html52.com
我爱小程序-开发者交流社区

向百度api发送请求,图片转base64问题,真机调试文件太小不发请求?

这一张图片大小是 316K,是发请求的

这一张图片大小是 316K,是发请求的这张图片大小是49.3K 不发请求的这一张图片大小是 316K,是发请求的这张图片大小是49.3K 不发请求的

这张图片大小是49.3K 不发请求的

这张图片大小是49.3K 不发请求的<!--logs.wxml-->
<view class="container log-list">


  <view>
  <image

<!--logs.wxml-->
<view class="container log-list">


  <view>
  <image src="{{img}}" ></image>
  </view>
 <button bindtap="getCode">选择照片</button>
 <view>
 <text>识别结果:{{number}}</text>
 </view>
  
</view>


//logs.js


Page({
  data: {
    access_token'',
    img"",
    number""
  },
  onLoadfunction () {


  },
  // 获取access_token
  onShowfunction () {
    let access_token = wx.getStorageSync('access_token')
    if (access_token) {
      this.setData({
        access_token
      })


    } else {
      wx.request({
    // https://ai.baidu.com/ai-doc/OCR/dk3h7y5vr 可以去申请 
            url'百度智能云获取access_token',
            success(data) => {
              const {
                data: {
                  access_token
                }
              } = data;
              wx.setStorageSync('access_token', access_token)
          this.setData({
            access_token
          })
        },
        fail(err) => {
          console.log(err)
        }
      })
    }


  },



  // 选择图片
  choseImg() {
    return new Promise((resolve, rejset) => {
      wx.chooseImage({
        count1,
        sizeType: ['original''compressed'],
        sourceType: ['album''camera'],
        success(res) => {
          this.setData({
            img: res.tempFilePaths[0]
          })
          resolve(res.tempFilePaths[0])
         
        },
        fail(err) => {
          wx.showToast({
            title'未选择图片',
            icon"none"
          })
          rejset(err)
        }
      })
    })
  },
  //  压缩图片
  async MyImageCompression() {
    let result = await this.choseImg()
    return new Promise((resolve, rejset) => {
      // 压缩以后转base64
      wx.compressImage({
        src: result,
        quality0,
        successfunction (res{
          resolve(res.tempFilePath)
        },
        failerr => {
          rejset(err)
        }
      })
    })


  },



 

  // 将图片转为base64
  toBase64(imgUrl) {


    
    return new Promise((resolve, rejset) => {
     
      wx.getFileSystemManager().readFile({
        filePath: imgUrl, //选择图片返回的相对路径
        encoding'base64'//编码格式
        successres => { //成功的回调
          resolve(res.data)


        },
        failerr => {
          rejset(err)


        },
        completevalue => {
          console.log(value)
        }
      })
      
    })


  },



  async getCode() {
    //压缩图片
    let result = await this.MyImageCompression()
    // 转base64
   
    let base64 = await this.toBase64(result)
   
    this.baiduCode(base64)


  },



  baiduCode(base64) {
    console.log(base64)
    const {
      access_token
    } = this.data
    wx.request({
      url"https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token=" + access_token,
      method"POST",
      header: {
        "Content-Type""application/x-www-form-urlencoded"
      },
      data: {
        image: base64
      },
      successres => {
        const {
          data
        } = res
        if (data && !data.words_result) {
          return wx.showToast({
            title'车牌识别失败',
            icon"none"
          })
        } else {
          const {
            data: {
              words_result: {
                number
              }
            }
          } = res
          this.setData({
            number
          })
        }


      },
      failerr => {
        console.log(err)
      },
      completevalue => {
        console.log(value)
      }
    })
  },



})

网友回复

社区技术运营专员-Riven:

你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付