bcns-gameDistributionSystem/api/modules/functions.py
odecif 909e01c373 Gamelist in memory
Instead of always scanning the game folder for nfo's when presenting the
gamelist it is now loaded once into memory and then accessed from there.
2022-10-28 11:04:27 +02:00

64 lines
1.6 KiB
Python

import cv2
import base64
global gamelist
gamelist = []
# Set the gamelist
def set_gamelist(gamelist_dict):
global gamelist
gamelist = gamelist_dict
return True
# Get the gamelist
def get_gamelist():
global gamelist
return gamelist
# Reducing the size of an artwork/image (PNG to JPEG) and base64-encode it.
# imagepath = full file image path
# expectedsize = medium or thumbnail
def reduceartcv2(imagepath, expectedsize):
if expectedsize == 'thumbnail':
image = cv2.imread(imagepath)
thumb_s = image_resize(image, width=90)
retval, thumb = cv2.imencode('.jpg', thumb_s)
return base64.b64encode(thumb).decode()
# Stolen from stackoverflow
# Resize image and keep aspect ratio
def image_resize(image, width=None, height=None, inter=cv2.INTER_AREA):
# initialize the dimensions of the image to be resized and
# grab the image size
dim = None
(h, w) = image.shape[:2]
# if both the width and height are None, then return the
# original image
if width is None and height is None:
return image
# check to see if the width is None
if width is None:
# calculate the ratio of the height and construct the
# dimensions
r = height / float(h)
dim = (int(w * r), height)
# otherwise, the height is None
else:
# calculate the ratio of the width and construct the
# dimensions
r = width / float(w)
dim = (width, int(h * r))
# resize the image
resized = cv2.resize(image, dim, interpolation=inter)
# return the resized image
return resized