playreel/backend/utils/image.py

15 lines
389 B
Python

import base64
import io
from PIL import Image
Image.MAX_IMAGE_PIXELS = None
def to_data_uri(image: Image.Image, max_size: tuple[int, int] = (1100, 1600)) -> str:
image = image.copy()
image.thumbnail(max_size, Image.LANCZOS)
buffer = io.BytesIO()
image.save(buffer, "JPEG", quality=92)
return "data:image/jpeg;base64," + base64.b64encode(buffer.getvalue()).decode()