from __future__ import annotations from io import BytesIO from PIL import Image def image_bytes_to_webp(raw: bytes, *, quality: int = 82) -> bytes: im = Image.open(BytesIO(raw)) if im.mode == 'P': im = im.convert('RGBA') elif im.mode == 'LA': im = im.convert('RGBA') elif im.mode not in ('RGBA', 'RGB'): im = im.convert('RGB') out = BytesIO() im.save(out, format='WEBP', quality=quality) return out.getvalue()