我目前使用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,我用我目前使用的代碼更新了我的問題。 –