我目前使用Blobstore为图像生成缩略图,但是,我喜欢将缩略图的尺寸存储在img
标记中,因为这是很好的做法,有助于加快渲染速度,并使部分加载的页面看起来更漂亮一些。App Engine:计算从Blobstore服务缩略图生成缩略图的尺寸
我该如何计算由blobstore生成的缩略图的尺寸,只知道原始图像的尺寸?
我以前的尝试并不十分准确,大部分时间都是一两个像素(可能是由于四舍五入)。
据我所知,获取缩略图并比使用图像API检查尺寸是可行的,但我认为效率不高。
这里是我用来计算它的代码,但是,它偶尔会偏离一个像素,导致浏览器略微拉伸图像,从而导致调整大小的人工制品以及性能较差。
from __future__ import division
def resized_size(original_width, original_height, width, height):
original_ratio = float(original_width)/float(original_height)
resize_ratio = float(width)/float(height)
if original_ratio >= resize_ratio:
return int(width), int(round(float(width)/float(original_ratio)))
else:
return int(round(float(original_ratio) * float(height))), int(height)
准确性非常重要!
好问题!你尝试了什么公式?在什么情况下错了? –
@systempuntoout,我没有生成它们,Google的图片服务API是,它不提供维度。 @Nick Johnson,我用我目前使用的代码更新了我的问题。 –