Make live previews use JPEG only when the image is lorge enough

This commit is contained in:
Aarni Koskela
2023-05-11 20:52:30 +03:00
parent 483545252f
commit da10de022f
2 changed files with 11 additions and 3 deletions

View File

@@ -95,9 +95,17 @@ def progressapi(req: ProgressRequest):
image = shared.state.current_image
if image is not None:
buffered = io.BytesIO()
image.save(buffered, format=opts.live_previews_format)
format = opts.live_previews_format
save_kwargs = {}
if format == "auto":
if max(*image.size) > 256:
format = "jpeg"
else:
format = "png"
save_kwargs = {"optimize": True}
image.save(buffered, format=format, **save_kwargs)
base64_image = base64.b64encode(buffered.getvalue()).decode('ascii')
live_preview = f"data:image/{opts.live_previews_format};base64,{base64_image}"
live_preview = f"data:image/{format};base64,{base64_image}"
id_live_preview = shared.state.id_live_preview
else:
live_preview = None