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 uploaded 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