from flask import Flask, request, jsonify
import uuid
from change_detect import start
import requests
from PIL import Image
from io import BytesIO


app = Flask(__name__)

# GET 请求接口示例
@app.route('/api/get_data', methods=['GET'])
def get_data():
    # 获取请求参数
    param = request.args.get('param', default='default_value')
    # 返回 JSON 响应
    return jsonify({
        "message": "GET 请求成功",
        "param": param
    })



# POST 上传图片
@app.route('/api/upload_image', methods=['POST'])
def upload_image():
    # 获取上传的文件
    img1 = request.files['img1']
    img2 = request.files['img2']
    # 保存文件
    filePath1 = 'predict/' + str(uuid.uuid4()) + img1.filename
    filePath2 = 'predict/' + str(uuid.uuid4()) + img2.filename

    img1.save(filePath1)
    img2.save(filePath2)
    return jsonify({
        "message": "上传成功",
        "data":{
            "img1": filePath1,
            "img2": filePath2
        }
    })
# POST 通过url保存图片到本地
@app.route('/api/save_image', methods=['POST'])
def save_image():
    # 获取图片路径
    # data = request.get_json()
    # img1 = data['img1']
    # img2 = data['img2']
    param = request.args.get('param', default='default_value')
    img1 = request.args.get('img1', default='default_value')
    img2 = request.args.get('img2', default='default_value')


    response1 = requests.get('http://192.168.60.63'+img1)
    if response1.status_code != 200:
        return jsonify({
            "message": "图片1不存在",
            "data":{
                "img1": img1
            }
        })
    img1 = Image.open(BytesIO(response1.content))

    response2 = requests.get('http://192.168.60.63'+img2)
    if response2.status_code != 200:
        return jsonify({
            "message": "图片2不存在",
            "data":{
                "img2": img2
            }
        })
    img2 = Image.open(BytesIO(response2.content))

    getImgPath=start(img1,img2)

    return jsonify({
        "message": "保存成功",
        "data":{
            "imgRes":getImgPath
        }
    })

# # POST 分析图片
# @app.route('/api/detect_image', methods=['POST'])
# def detect_image():
#     # 获取图片路径
#     data = request.get_json()
#     img1 = data['img1']
#     img2 = data['img2']
#     getImgPath=start(img1,img2)
#     return jsonify({
#         "message": "分析成功",
#         "data":{
#             "img": getImgPath
#         }
#     })

if __name__ == '__main__':
    app.run(debug=True,port=4100)