legato-demo / image_utils.py
guangyangmusic's picture
feat: add examples and image cropping method
e337419
Raw
History Blame Contribute Delete
594 Bytes
"""Image preprocessing utilities for LEGATO OMR."""
from PIL import Image
from config import LETTER_ASPECT
def pad_to_portrait_letter(pil_image: Image.Image) -> Image.Image:
"""If aspect ratio is wider than letter, pad at the bottom to match letter aspect."""
if pil_image.mode != "RGB":
pil_image = pil_image.convert("RGB")
w, h = pil_image.size
pil_image = pil_image.resize((1050, 1050*h//w))
if pil_image.height >= 1485:
return pil_image
canvas = Image.new("RGB", (1050, 1485), (255, 255, 255))
canvas.paste(pil_image, (0, 0))
return canvas