Spaces:
Paused
Paused
File size: 3,097 Bytes
e1233d8 ce5f5e3 45a3fc9 e1233d8 45a3fc9 e1233d8 45a3fc9 e999fd6 37e9804 45a3fc9 e1233d8 e999fd6 e1233d8 45a3fc9 e1233d8 e999fd6 ce5f5e3 e999fd6 8d11230 45a3fc9 ce5f5e3 45a3fc9 ce5f5e3 45a3fc9 e1233d8 68313fe ce5f5e3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | from flask import Flask, request, jsonify, send_file
import traceback
from android import AndroidEditor
from iphone import IPhoneEditor
import numpy as np
import cv2
import pytesseract
import os
app = Flask(__name__)
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/')
def index():
"""
Endpoint utama yang menampilkan pesan selamat datang
"""
return "Kelas Kink"
@app.route('/android', methods=['POST'])
def process_android_image():
"""
Endpoint untuk memproses gambar dari Android
Parameters:
- anggota: Nama anggota (form data)
- file: File gambar (form data)
Returns:
- JSON response dengan status, theme, dan gambar yang diproses
"""
app.logger.info('Menerima permintaan POST untuk memproses gambar')
anggota = request.form.get('anggota')
image_file = request.files.get('file')
if not anggota or not image_file:
return jsonify({'status': 'failed', 'message': 'Parameter anggota dan file diperlukan'}), 400
try:
file_bytes = image_file.read()
editor = AndroidEditor()
img_b64, theme = editor.process_image_bytes(file_bytes, anggota)
if img_b64 is None:
return jsonify({'status': 'failed', 'message': 'Gagal memproses gambar'}), 500
return jsonify({'status': 'success', 'theme': theme, 'image': img_b64})
except Exception as e:
error_message = str(e)
error_traceback = traceback.format_exc()
print("Error occurred:", error_traceback)
return jsonify({'status': 'failed', 'message': error_message, 'traceback': error_traceback}), 500
@app.route('/iphone', methods=['POST'])
def process_iphone_image():
"""
Endpoint untuk memproses gambar dari iPhone
Parameters:
- anggota: Nama anggota (form data)
- file: File gambar (form data)
Returns:
- JSON response dengan status, theme, dan gambar yang diproses
"""
app.logger.info('Menerima permintaan POST untuk memproses gambar')
anggota = request.form.get('anggota')
image_file = request.files.get('file')
if not anggota or not image_file:
return jsonify({'status': 'failed', 'message': 'Parameter anggota dan file diperlukan'}), 400
try:
file_bytes = image_file.read()
editor = IPhoneEditor()
img_b64, theme = editor.process_image_bytes(file_bytes, anggota)
if img_b64 is None:
return jsonify({'status': 'failed', 'message': 'Gagal memproses gambar'}), 500
return jsonify({'status': 'success', 'theme': theme, 'image': img_b64})
except Exception as e:
error_message = str(e)
error_traceback = traceback.format_exc()
print("Error occurred:", error_traceback)
return jsonify({'status': 'failed', 'message': error_message, 'traceback': error_traceback}), 500
if __name__ == '__main__':
print(1)
app.run(port=7860, debug=True, host='0.0.0.0')
|