【发布时间】:2011-07-02 01:21:50
【问题描述】:
我目前正在使用 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)
准确性非常重要!
【问题讨论】:
-
好问题!你尝试了什么公式,在什么情况下它是错误的?
-
@systempuntoout,我没有生成它们,Google 的图像服务 API 是,它不提供尺寸。 @Nick Johnson,我用我目前使用的代码更新了我的问题。
标签: python google-app-engine thumbnails blobstore