diff options
Diffstat (limited to 'server/app/main/utils.py')
| -rw-r--r-- | server/app/main/utils.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/server/app/main/utils.py b/server/app/main/utils.py new file mode 100644 index 00000000..510e5c23 --- /dev/null +++ b/server/app/main/utils.py @@ -0,0 +1,37 @@ +from flask import current_app as app +from PIL import Image +import numpy as np +import cv2 as cv +import os +from os.path import join + +def ensure_pil(im): + try: + im.verify() + return im + except: + return Image.fromarray(im.astype('uint8'), 'RGB') + +def ensure_np(im): + if type(im) == np.ndarray: + return im + return np.asarray(im, np.uint8) + +def get_recent_uploads(limit=10): + d_uploads = app.config['UPLOADS'] + d_renders = app.config['RENDERS'] + + # list all files in uploads dir + filenames = [s for s in os.listdir(d_uploads) + if os.path.isfile(os.path.join(d_uploads, s))] + # sort upload files by date + filenames.sort(key=lambda s: os.path.getmtime(os.path.join(d_uploads, s)),reverse=True) + basenames = [os.path.splitext(os.path.basename(f))[0] for f in filenames] + basenames = basenames[:limit] + filenames = [f for f in basenames if os.path.isfile(join(d_renders,'{}_dull.jpg'.format(f)))] + + # create list for uploads and renders + uploads = [join('/img/uploads',f) for f in filenames] + renders = [join('/img/renders','{}_dull'.format(f)) for f in filenames] + urls = [join('/d',f) for f in basenames] + return uploads, renders, urls |
