moved GenFace and GenThumb common code into shared, and hook it in both f/e and b/e where needed
This commit is contained in:
34
shared.py
34
shared.py
@@ -1,5 +1,9 @@
|
|||||||
import socket
|
import socket
|
||||||
import os
|
import os
|
||||||
|
import face_recognition
|
||||||
|
import io
|
||||||
|
import base64
|
||||||
|
from PIL import Image, ImageOps
|
||||||
|
|
||||||
hostname = socket.gethostname()
|
hostname = socket.gethostname()
|
||||||
PROD_HOST="pa_web"
|
PROD_HOST="pa_web"
|
||||||
@@ -73,3 +77,33 @@ def SymlinkName(ptype, path, file):
|
|||||||
if symlink[-1] == '/':
|
if symlink[-1] == '/':
|
||||||
symlink=symlink[0:-1]
|
symlink=symlink[0:-1]
|
||||||
return symlink
|
return symlink
|
||||||
|
|
||||||
|
|
||||||
|
def GenThumb(fname):
|
||||||
|
print( f"GenThumb({fname})" )
|
||||||
|
|
||||||
|
try:
|
||||||
|
im_orig = Image.open(fname)
|
||||||
|
im = ImageOps.exif_transpose(im_orig)
|
||||||
|
bands = im.getbands()
|
||||||
|
if 'A' in bands:
|
||||||
|
im = im.convert('RGB')
|
||||||
|
im.thumbnail((THUMBSIZE,THUMBSIZE))
|
||||||
|
img_bytearray = io.BytesIO()
|
||||||
|
im.save(img_bytearray, format='JPEG')
|
||||||
|
img_bytearray = img_bytearray.getvalue()
|
||||||
|
thumbnail = base64.b64encode(img_bytearray)
|
||||||
|
thumbnail = str(thumbnail)[2:-1]
|
||||||
|
return thumbnail
|
||||||
|
except Exception as e:
|
||||||
|
print( f"GenThumb failed: {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def GenFace(fname):
|
||||||
|
img = face_recognition.load_image_file(fname)
|
||||||
|
location = face_recognition.face_locations(img)
|
||||||
|
encodings = face_recognition.face_encodings(img, known_face_locations=location)
|
||||||
|
if len(encodings):
|
||||||
|
return encodings[0].tobytes()
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user