from flask import Flask, request, jsonify from flask_cors import CORS from PIL import Image import io from tcp import send_request app = Flask(__name__) CORS(app) @app.route('/') def root(): return 'ok' @app.route('/api/bitmap', methods=['POST']) def bitmap(): if 'file' not in request.files: return jsonify({"error": "no file"}), 400 file = request.files['file'] if file.filename == '': return jsonify({"error": "no file"}), 400 if not file.filename.lower().endswith('.png'): return jsonify({"error": "invalid file format"}), 400 try: image_stream = io.BytesIO(file.read()) img = Image.open(image_stream) grayscale_img = img.convert('L') bitmap_data = list(grayscale_img.getdata()) payload = ''.join([chr(i) for i in bitmap_data]) print(payload) chunk_size = 2048 for i in range(0, len(payload), chunk_size): data = { "command": "update_image", "index": i, "data": bytes(payload[i:i+chunk_size]) } send_request(data) send_request({"command":"push_image"}) # req = requests.post('http://10.141.142.75/api/tag', data=payload) return jsonify({'payload': payload}) # return jsonify({'code': req.status_code}) except Exception as e: return jsonify({"error": e}), 500 if __name__ == '__main__': app.run('0.0.0.0', port=80)