2016-06-01 13 views
-1

いくつかの画像のサイズを変更したいのですが、私のコードです。Pythonは画像の高さをリサイズしません

import os 
from PIL import Image 

size = 300, 300 

for f in os.listdir('.'): 
    if f.endswith('.png'): 
     i = Image.open(f) 
     fn, fext = os.path.splitext(f) 
     i.thumbnail(size, Image.ANTIALIAS) 
     i.save('output/{}{}'.format(fn, fext)) 

コードが正常に動作していると、それは300ピクセルの幅にすべての私のイメージのサイズを変更しますが、高さがサイズ変更されませんでした。

誰でも私にその理由を教えてもらえますか?

答えて

1

Image.thumbnail()は、元の画像の縦横比を維持するように設計されています。出力イメージを正確に300x300ピクセルにする場合は、代わりにImage.resize()を使用してください。

+0

こんにちはロブ、答えてくれてありがとう、私はあなたの言ったようなサイズ変更()を使用しました。 – Harris

+0

'thumbnail'はインプレースメソッドですが、' resize'はサイズ変更されたImageのコピーを返します。そのため、サムネイルで行を 'i = i.resize(size、Image.ANTIALIAS)'に変更してください。 – Rob

関連する問題