我目前正在使用 blobstore 为图像生成缩略图,但是,我喜欢将缩略图的尺寸存储在img
标签中,因为这是一种很好的做法,有助于加快渲染速度,并使部分加载的页面看起来更好一些。
我将如何计算 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)
准确性非常重要!