Skip to content

Instantly share code, notes, and snippets.

@pokidovea
Created November 4, 2019 18:06
Show Gist options
  • Save pokidovea/084a66a40f519235243d49834b701746 to your computer and use it in GitHub Desktop.
Save pokidovea/084a66a40f519235243d49834b701746 to your computer and use it in GitHub Desktop.
Flask- приложение для получения thumbnail изображений и видео
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment