123456789101112131415161718192021222324252627282930313233343536 |
- import cv2
- import os
- from PIL import Image
- from eventlet import tpool
- from flask import abort
- from flask import send_from_directory
- from flask.views import View
- from pycs.util import file_ops
- from pycs.database.File import File
- from pycs.database.Project import Project
- class GetResizedFile(View):
- """
- returns binary file after resizing
- """
- # pylint: disable=arguments-differ
- methods = ['GET']
- def dispatch_request(self, file_id: int, max_width: int, max_height: int = 2**24):
- # get file from database
- file = File.query.get(file_id)
- if file is None:
- abort(404, "File object not found")
- if not os.path.exists(file.absolute_path):
- abort(404, "File not found!")
- project = file.project
- # send data
- file_directory, file_name = tpool.execute(file_ops.resize_file,
- file.id, max_width, max_height)
- return send_from_directory(file_directory, file_name)
|