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 插件裁剪和上传照片