import pika import json from flask import Flask, request, jsonify from flask_cors import CORS import boto3 import tempfile import os import base64 import cv2 import numpy as np app = Flask(__name__) CORS(app) s3 = boto3.client('s3') BUCKET_NAME_ORIGINAL = "original-images-allowing-griffon" BUCKET_NAME_PROCESSED = "processed-images-allowing-griffon" def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1].lower() in {'png', 'jpg', 'jpeg'} def split_image(image_data, num_parts): img = cv2.imdecode(np.frombuffer(image_data, np.uint8), cv2.IMREAD_COLOR) height, width, _ = img.shape part_height = height // num_parts parts = [] for i in range(num_parts): part_img = img[i * part_height: (i + 1) * part_height if i != num_parts - 1 else height, :, :] _, buffer = cv2.imencode('.png', part_img) part_data = buffer.tobytes() parts.append(part_data) return parts, width, height, part_height def publish_task(part_data, filename, part_num, operation, callback_queue): connection = pika.BlockingConnection(pika.ConnectionParameters('