Файлы картинок и видео кладем в подпапку media
Запуск env FLASK_APP=app.py flask run
Запросы:
Файлы картинок и видео кладем в подпапку media
Запуск env FLASK_APP=app.py flask run
Запросы:
| from io import BytesIO | |
| import cv2 | |
| from PIL import Image | |
| from flask import Flask, send_file | |
| app = Flask(__name__) | |
| @app.route('/') | |
| def get_thumbnail(): | |
| name = request.args.get('name') | |
| size = int(request.args.get('size', 200)) | |
| image = Image.open(f'./media/{name}') | |
| image.thumbnail((size, size), Image.LANCZOS) | |
| buffer = BytesIO() | |
| image.save(buffer, 'JPEG', quality=70) | |
| buffer.seek(0) | |
| return send_file(buffer, as_attachment=False, mimetype='image/jpg') | |
| @app.route('/video') | |
| def get_video_thumbnail(): | |
| name = request.args.get('name') | |
| size = int(request.args.get('size', 200)) | |
| vidcap = cv2.VideoCapture(f'./media/{name}') | |
| vidcap.set(cv2.CAP_PROP_POS_MSEC, 0) | |
| success, images = vidcap.read() | |
| images = cv2.cvtColor(images, cv2.COLOR_BGR2RGB) | |
| image = Image.fromarray(images) | |
| image.thumbnail((size, size), Image.LANCZOS) | |
| buffer = BytesIO() | |
| image.save(buffer, 'JPEG', quality=70) | |
| buffer.seek(0) | |
| return send_file(buffer, as_attachment=False, mimetype='image/jpg') | |
| opencv-python==4.1.1.26 | |
| Pillow==6.2.1 | |
| Flask==1.1.1 |