|
import sys |
|
sys.path.append('.') |
|
|
|
import os |
|
import base64 |
|
import json |
|
|
|
from flask import Flask, request, jsonify |
|
from idsdk import getMachineCode |
|
from idsdk import setActivation |
|
from idsdk import initSDK |
|
from idsdk import idcardRecognition |
|
|
|
licensePath = "license.txt" |
|
license = "" |
|
|
|
machineCode = getMachineCode() |
|
print("machineCode: ", machineCode.decode('utf-8')) |
|
|
|
try: |
|
with open(licensePath, 'r') as file: |
|
license = file.read() |
|
except IOError as exc: |
|
print("failed to open license.txt: ", exc.errno) |
|
print("license: ", license) |
|
|
|
ret = setActivation(license.encode('utf-8')) |
|
print("activation: ", ret) |
|
|
|
ret = initSDK() |
|
print("init: ", ret) |
|
|
|
app = Flask(__name__) |
|
|
|
@app.route('/idcard_recognition', methods=['POST']) |
|
def idcard_recognition(): |
|
try: |
|
file = request.files['file'] |
|
|
|
base64_image = base64.b64encode(file.read()).decode('utf-8') |
|
ret = idcardRecognition(base64_image.encode('utf-8')) |
|
|
|
if ret != None: |
|
j = json.loads(ret) |
|
j.update({"Status": "Ok"}) |
|
response = jsonify(j) |
|
else: |
|
response = jsonify({"Status": "Error"}) |
|
except: |
|
response = jsonify({"Status": "Error"}) |
|
|
|
response.status_code = 200 |
|
response.headers["Content-Type"] = "application/json; charset=utf-8" |
|
return response |
|
|
|
@app.route('/idcard_recognition_base64', methods=['POST']) |
|
def idcard_recognition_base64(): |
|
try: |
|
content = request.get_json() |
|
base64_image = content['base64'] |
|
|
|
ret = idcardRecognition(base64_image.encode('utf-8')) |
|
|
|
if ret != None: |
|
j = json.loads(ret) |
|
j.update({"Status": "Ok"}) |
|
response = jsonify(j) |
|
else: |
|
response = jsonify({"Status": "Error"}) |
|
except: |
|
response = jsonify({"Status": "Error"}) |
|
|
|
response.status_code = 200 |
|
response.headers["Content-Type"] = "application/json; charset=utf-8" |
|
return response |
|
|
|
if __name__ == '__main__': |
|
port = int(os.environ.get("PORT", 8080)) |
|
app.run(host='0.0.0.0', port=port) |