2017-01-18 4 views
0

最小のサイズが500pxであるように画像の縦横比を維持しながら画像のサイズを変更しようとしています。PILで特定のサイズ以上の画像サムネイル

thisのコードを使用すると、最大サイズに基づいて画像のサイズが変更されます。

画像が2000x1000の場合、size= 500,500と設定すると、結果の画像は500x250となりますが、私は1000x500となります。どうしたらいいですか?

明らかにこれらは乱数です。

答えて

0

minの代わりにmaxを使用してください。異なる結果を守ってください。

>>> maxwidth = 500 
>>> maxheight = 500 
>>> width = 2000 
>>> height = 1000 
>>> i = min(maxwidth/width, maxheight/height) 
>>> a = max(maxwidth/width, maxheight/height) 
>>> width*i, height*i 
(500.0, 250.0) 
>>> width*a, height*a 
(1000.0, 500.0) 

あなたはimg.thumbnailに送信する必要がありますどのようなサイズを決定するために、これらの値を使用することができます。

x,y = 500, 500 
# compute i and a above 
m.thumbnail((x*a/i, y*a/i), Image.ANTIALIAS) 
関連する問題