Spaces:
Runtime error
Runtime error
from PIL import Image | |
def min_res(size, min_size): return 192 if size < 192 else size | |
def up_down_bucket(m_size, in_size, direction): | |
if direction == 'down': return abs(int(m_size - in_size)) | |
if direction == 'up': return abs(int(m_size + in_size)) | |
def get_bucket_sizes(size, direction: 'down', min_size): | |
multipliers = [64, 128] | |
for i, m in enumerate(multipliers): | |
res = up_down_bucket(m, size, direction) | |
multipliers[i] = min_res(res, min_size=min_size) | |
return multipliers | |
def closest_bucket(m_size, size, direction, min_size): | |
lst = get_bucket_sizes(m_size, direction, min_size) | |
return lst[min(range(len(lst)), key=lambda i: abs(lst[i]-size))] | |
def resolve_bucket(i,h,w): return (i / (h / w)) | |
def sensible_buckets(m_width, m_height, w, h, min_size=192): | |
if h > w: | |
w = resolve_bucket(m_width, h, w) | |
w = closest_bucket(m_width, w, 'down', min_size=min_size) | |
return w, m_height | |
if h < w: | |
h = resolve_bucket(m_height, w, h) | |
h = closest_bucket(m_height, h, 'down', min_size=min_size) | |
return m_width, h | |
return m_width, m_height |