Spaces:
Running
Running
#!/usr/bin/env python | |
from __future__ import annotations | |
import PIL.Image | |
def cropImage(image: PIL.Image.Image): | |
original_width, original_height = image.size | |
scale = max(original_width, original_height) / min(original_width, original_height) | |
target_width = 512 | |
target_height = 768 | |
if scale < 1.1: | |
target_width = 640 | |
target_height = 640 | |
elif original_width > original_height: | |
target_width = 768 | |
target_height = 512 | |
if original_width / original_height > target_width / target_height: | |
new_width = int(original_height * (target_width / target_height)) | |
crop_box = ((original_width - new_width) // 2, 0, (original_width + new_width) // 2, original_height) | |
else: | |
new_height = int(original_width * (target_height / target_width)) | |
crop_box = (0, (original_height - new_height) // 2, original_width, (original_height + new_height) // 2) | |
cropped_image = image.convert("RGB") | |
cropped_image = cropped_image.crop(crop_box) | |
cropped_image = cropped_image.resize((target_width, target_height)) | |
return cropped_image | |