微信小程序圖片上傳(文字識別)

要點:OCR文字識別 圖片上傳小程序

在最近的項目中遇到須要進行OCR識別,中間遇到的坑記錄一下後端

OCR接口:採用百度OCR通用文字識別服務器

在進行調試過程當中遇到下列問題:微信

百度ocr接口1.對圖片經行base64 位轉碼且不要頭部data:base這些標識app

2.轉碼之後要進行必須經行encodeURI()轉換測試

3.頭部必須爲url

header: {
                'content-type': 'application/x-www-form-urlencoded'
              },

下面正式介紹小程序開發過程遇到的坑:spa

文字識別確定要上傳圖片,微信提供的接口爲調試

wx.uploadFile({
      url: 'https://example.weixin.qq.com/upload', //僅爲示例,非真實的接口地址
      filePath: tempFilePaths[0],
      name: 'file',
      formData:{
        'user': 'test'
      },
      success: function(res){
        var data = res.data
        //do something
      }

由於小程序端暫時沒法進行圖片轉base64 因此進行圖片上傳在後端轉base64;code

在實際開發中,這一塊很抗,微信端也沒給出官方說明;

首先是 name屬性裏面圖片二進制數據沒法獲取,而後測試formData也沒法獲取,查資料後,對formData數據上傳前進行encodeURI()轉換,以後後端進行解碼能夠得到數據;

可是上傳的圖片仍是獲取不到,各類查資料後發現,圖片上傳小程序採用的是

header: {
            'content-type': 'multipart/form-data'
          },

這種頭部,屬於一種特殊的表單提交,這時候就看不一樣語言後端怎麼處理了。

數據處理完之後可以正常顯示,可是上傳圖片太大會出現413錯誤;

這個問題是服務器設置問題,修改了兩個地方,具體的能夠本身去百度。

而後就是調用百度OCR接口,以這張圖片爲例:

返回數據爲:

location
:
{width: 294, top: 179, height: 79, left: 155}
words
:
"格藍迪"

 

數據裏面會有文字在圖片上的位置,高度等信息

這時候你就能夠操做這些信息在圖片上顯示:讓文字帶有邊框等,加上邊框後如圖:

 

大體流程就這樣,稍後爲你們更一篇wx:for修改樣式和具體怎麼框這些文字。

相關文章
相關標籤/搜索