Add caching to resized images

This commit is contained in:
2025-11-05 20:37:56 +00:00
parent 8ad638f496
commit dba64a0051

View File

@@ -152,6 +152,9 @@ def image(image_name: str) -> Response:
if (w >= max_width and h >= max_height): if (w >= max_width and h >= max_height):
return send_from_directory(md_directory, path.join('images', image_name)) return send_from_directory(md_directory, path.join('images', image_name))
if path.exists(path.join('images', f'{w}-{h}-{image_name}')):
return send_from_directory(md_directory, path.join('images', f'{w}-{h}-{image_name}'))
req_size = [max_width, max_height] req_size = [max_width, max_height]
if w > 0: if w > 0:
req_size[0] = w req_size[0] = w
@@ -161,6 +164,7 @@ def image(image_name: str) -> Response:
resized_img = BytesIO() resized_img = BytesIO()
the_image.thumbnail(tuple(req_size)) the_image.thumbnail(tuple(req_size))
the_image.save(resized_img, format=the_image.format) the_image.save(resized_img, format=the_image.format)
the_image.save(path.join(md_directory, 'images', f'{w}-{h}-{image_name}'), the_image.format)
response = make_response(resized_img.getvalue()) response = make_response(resized_img.getvalue())
response.headers.set('Content-Type', f'image/{the_image.format}') response.headers.set('Content-Type', f'image/{the_image.format}')