import os from flask import Flask, request, send_file from io import BytesIO from PIL import Image from imageio import mimwrite app = Flask(__name__) HTML_CONTENT = """ GIF Generator

GIF Generator

""" @app.route('/', methods=['GET']) def index(): return HTML_CONTENT @app.route('/upload', methods=['POST']) def upload(): try: files = request.files.getlist('images') if not files: return "No images uploaded", 400 images = [] for file in files: if file: try: img = Image.open(BytesIO(file.read())) images.append(img) except Exception as e: print(f"Error opening image: {e}") return f"Error opening image: {e}", 500 if not images: return "No valid images processed", 400 # Generate GIF using imageio gif_bytes = BytesIO() mimwrite(gif_bytes, [img for img in images], format='GIF', fps=10) gif_bytes.seek(0) return send_file( gif_bytes, mimetype='image/gif', download_name='animated.gif' ) except Exception as e: print(f"Error during upload: {e}") return f"Error: {e}", 500 if __name__ == '__main__': app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)), debug=True)