summaryrefslogtreecommitdiff
path: root/server/app/main/utils.py
diff options
context:
space:
mode:
authoradamhrv <adam@ahprojects.com>2018-12-15 19:57:49 +0100
committeradamhrv <adam@ahprojects.com>2018-12-15 19:57:49 +0100
commit82b2c0b5d6d7baccbe4d574d96e18fe2078047d7 (patch)
treea8784b7ec2bc5a0451c252f66a6b786f3a2504f5 /server/app/main/utils.py
parent8e978af21c2b29f678a09701afb3ec7d65d0a6ab (diff)
parentc5b02ffab8d388e8a2925e51736b902a48a95e71 (diff)
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'server/app/main/utils.py')
-rw-r--r--server/app/main/utils.py37
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