分享人 | 涛涛涛 |
分享时间 | 17天2小时前 |
最后更新 | 16天12小时前 |
修订版本 | 3 |
子程序大小 | 8.3 KB |
Quicker版本 | 1.44.10.0 |
图片/Base64 转换是其UmiOCR提供的HTTP接口一种方式。
这是使用文件路径的HTTP接口方式。(自己改的可以使用)
将\\UmiOCR-data\py_src\server\ocr_server.py文件中的函数改一下,增加颜色文字的代码
# 路由函数
def init(UmiWeb):
@UmiWeb.route("/api/ocr/get_options")
def _get_options_json():
opts = get_ocr_options()
res = json.dumps(opts)
return res
"""
执行OCR,方法:POST
参数:
"base64": "", # 必填
"options": {}, # 选填,内容与 _get_options 的对应。
"""
@UmiWeb.route("/api/ocr", method="POST")
def _ocr():
try:
data = request.json
except Exception as e:
return json.dumps({"code": 800, "data": f"请求无法解析为json。 {e}"})
if not data:
return json.dumps({"code": 801, "data": "请求为空。"})
#if "base64" not in data:
# return json.dumps({"code": 802, "data": "请求中缺少 base64 字段。"})
if "path" not in data and "base64" not in data:
return json.dumps({"code": 802, "data": f"请求中缺少 base64 或 path 字段。"})
if "path" in data:
msnList = [{"path": data["path"]}]
else:
msnList = [{"base64": data["base64"]}]
if "options" not in data:
data["options"] = {}
elif not isinstance(data["options"], dict):
return json.dumps({"code": 803, "data": "请求中 options 字段必须为字典。"})
try:
# 补充缺失的默认参数
opt = data["options"]
default = get_ocr_options()
for key in default:
if key not in opt:
opt[key] = default[key]["default"]
# 检查OCR参数
check_ocr_options(opt)
except Exception as e:
return json.dumps({"code": 804, "data": f"options 解释失败。 {e}"})
# 同步执行
resList = MissionOCR.addMissionWait(opt, msnList)
res = resList[0]["result"]
if opt["data.format"] == "text": # 转纯文本
if res["code"] == 100:
res["data"] = getDataText(res["data"])
res = json.dumps(res)
return res
修订版本 | 更新时间 | 更新说明 |
---|---|---|
3 | 16天12小时前 | 1 |
2 | 16天13小时前 | 加个参数 |
1 | 17天2小时前 | 1 |