2012-06-19 55 views

回答

0

看看PIL模塊中的Image.py,它實際上會自動保留比例。問題雖然你不能生成某些寬度或特定高度的縮略圖 - PIL會根據原始圖像選擇寬度或高度,並且無法改變它。這是進行計算的代碼。

# preserve aspect ratio 
    x, y = self.size 
    if x > size[0]: y = max(y * size[0]/x, 1); x = size[0] 
    if y > size[1]: x = max(x * size[1]/y, 1); y = size[1] 
    size = x, y 

的哈克的方式做到這一點是設置你不關心側一個非常大的值,然後對方會一直被用來生成縮略圖。 所以這不會把戲對我來說:

IMAGES_THUMBS = { 
    'thumbs': (80, 100000), 
} 

絕對不是最好的方式,它可能會停止與PIL的未來版本的工作,但它不夠好現在。 仍然對更好的方式來實現相同的事情感興趣。