From 98c8bd268d2b5eb0cf081f29d42e99d85ea3de63 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 6 Jan 2024 17:01:02 +0000 Subject: [PATCH] util: Support WEBP as output format for thumbnails Signed-off-by: Michael Tremer --- src/backend/util.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/backend/util.py b/src/backend/util.py index 80251f16..27290cc4 100644 --- a/src/backend/util.py +++ b/src/backend/util.py @@ -260,14 +260,23 @@ def generate_thumbnail(image, size, square=False, format=None, **args): else: image.thumbnail((size, size), PIL.Image.LANCZOS) + # Apply a gaussian blur to make compression easier + image = image.filter(PIL.ImageFilter.GaussianBlur(radius=0.05)) + + # Arguments to optimise the compression + args.update({ + "subsampling" : "4:2:0", + "quality" : 68, + }) + if image.format == "JPEG": - # Apply a gaussian blur to make compression easier - image = image.filter(PIL.ImageFilter.GaussianBlur(radius=0.05)) + args.update({ + "qtables" : "web_low", + }) - # Arguments to optimise the compression + elif image.format == "WEBP": args.update({ - "subsampling" : "4:2:0", - "quality" : 70, + "lossless" : False, }) with io.BytesIO() as f: -- 2.47.2