MUI调用照片以及裁剪和图库照片上传到服务器后端部分Flask+MUI

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MUI调用照片以及裁剪和图库照片上传到服务器后端部分Flask+MUI相关的知识,希望对你有一定的参考价值。

MUI调用照片以及裁剪和图库照片上传到服务器【后端部分】

涉及技术:

一.MUI后端接受照片

1.1 主要的py文件

先设置固定接受照片路由,用于处理数据请求。

@app.route("/photo", methods=[POST, GET])

我们在上一篇中写到,前端以及将目的照片将照片的文件流转换为besa64格式的数据流,所以我们在后端里,需要接受它的baes64的数据流文件:

score = request.form.get("imageBase64")

现在的score里面就是我们需要的照片流。我们将其代码模块化,新建一个Photo的py文件。

在主要的py文件里将里面的三个方法引入到我们需要的PHOTO文件里面:

from Photo import imgshibie, wordshibie,translate

1.2 在子模块Photo中调用API

我们首先引入需要的py模块包,如下:

import requests
import base64
import http.client
import hashlib
import urllib
import random
import json

1.2.1 调用通用文字识别(高精度版)某度

百度通用翻译API,不包含词典、tts语音合成等资源。

coding=utf-8

调用调用通用文字识别的目的URL

request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic"

二进制方式打开图片文件

img=imgByteArr
access_tokenx = "XXXXXX"
params = "image": img

access_tokenx为个人的token,需要个人申请。

params存放着我们的目标二进制方式图片文件。

调用其API

request_url = request_url + "?access_token=" + access_tokenx
headers = content-type: application/x-www-form-urlencoded
response = requests.post(request_url, data=params, headers=headers)

如果识别成功:

 qwes=response.json()[words_result]
            overword=""
            for word in qwes:
                overword =overword+word["words"]
            # print(overword)
            return overword

调用某度的API之后,返回本次文字识别的结果,返回给主要的py里,后面会响应给前端。

通用物体和场景识别:

目的的API为

 request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/advanced_general"

1.2.2 中文和英文相互翻译API调用

百度appid和密钥需要通过注册百度【翻译开放平台】账号后获得。

appid = XXXX  # 填写你的appid
secretKey = XXXX  # 填写你的密钥

这里有一个需求,因为我需要上传一个图片,然后进行一个文字提取:有俩种情况

  • 如果是中文:翻译为英文返回到前端
  • 如果是英文:翻译为中文返回到前端

通用翻译API HTTP地址如下:

   httpClient = None
    myurl = /api/trans/vip/translate

写一个检验是否含有中文字符的字函数:

def is_contains_chinese(strs):
    for _char in strs:
        if \\u4e00 <= _char <= \\u9fa5:
            return True
    return False

如果这个函数里面,传入的值含有中文字符的值,返回True,否则返回Faalse。

实现,如果是中文:翻译为英文返回到前端,如果是英文:翻译为中文返回到前端

    if is_contains_chinese(translate):
        fromLang = auto  # 原文语种
        toLang = en
    else:
        fromLang = auto  # 原文语种
        toLang = zh

手动录入翻译内容,q存放

    q = translate
    sign = appid + q + str(salt) + secretKey
    sign = hashlib.md5(sign.encode()).hexdigest()
    myurl = myurl + ?appid= + appid + &q= + urllib.parse.quote(q) + &from= + fromLang + \\
            &to= + toLang + &salt= + str(salt) + &sign= + sign

建立会话,返回结果。

response是HTTPResponse对象

httpClient = http.client.HTTPConnection(api.fanyi.baidu.com)
httpClient.request(GET, myurl)
response = httpClient.getresponse()
result_all = response.read().decode("utf-8")
result = json.loads(result_all)

返回值结果如下:

二 . MUI和Flask的特点

MUI的特点:

Flask的特点:

以上是关于MUI调用照片以及裁剪和图库照片上传到服务器后端部分Flask+MUI的主要内容,如果未能解决你的问题,请参考以下文章

从相机和图库上传在所有版本中都无法正常工作

在 Android 浏览器中使用 input type=file capture=camera 上传照片时,防止将照片自动保存到图库

如何使用带有 php 的cropit jquery 插件裁剪和上传照片

uniapp怎么实现选择和上传图片分开

Android笔记67Android之使用系统中的相机功能(拍照保存照片显示拍摄的照片照片保存到图库等操作)

MUI 拍照或选取照片上传作为头像