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.
64 lines
1.6 KiB
Python
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
|