Вам нужно вычислить пропорции исходного изображения, чтобы изменить его размер до желаемой ширины и высоты, после чего у вас должно быть рассчитанное значение размера, чтобы перейти к URL-адресу показа и получить то, что вы хотите.
resolution = '1200x900'
blob_width, blob_height = resolution.split('x')
blob_width = float(blob_width)
blob_height = float(blob_height)
width = float(width)
height = float(height)
blob_prop = blob_width / blob_height
req_box_prop = width / height
if req_box_prop == blob_prop:
scale_factor = blob_width / width
serving_img_height = blob_width / scale_factor
serving_img_width = blob_height / scale_factor
if req_box_prop < blob_prop:
serving_img_width = width
serving_img_height = width / blob_prop
else:
serving_img_width = height * blob_prop
serving_img_height = height
serving_img_width = int(round(serving_img_width, 0))
serving_img_height = int(round(serving_img_height, 0))
# use serving urls
side = max(serving_img_width, serving_img_height)
, а side - это то, что вы используете для своего URL-адреса для сервировки
'http://yourservingurl=s%s'%side